首页 文章

Android Studio - APK,大写包名称 - INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

提问于
浏览
0

我知道这里提出几乎相同的问题,但接受的答案对我不起作用 .

Make apk with Capitalized package name in android studio

让我解释 .

我们的Android应用程序是在 Xamarin.Android 开发的,我们在程序包命名方面犯了一个错误 - Visual Studio和Xamarin使用大写的程序包名称配置了我们的应用程序清单(这是一个错误,现在我用我的理智支付) . 它适用于Xamarin版本,但我们决定在一些版本之后在Android Studio中重写该应用程序 . 现在问题开始了......

我们无法在早于Android 8.0的设备上直接部署/安装apk,我们收到以下错误: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

有趣的是,在具有最新API的设备上不存在该问题 .

这显然与我们的软件包名称有关,例如:YES_We_Failed_On_It.We_Failed_Very_Badly

如果我将它改为小写的一切正常,但情况是我们无法发布另一个具有不同包名的应用程序 .

有没有可能解决这个问题?

1 回答

  • 0

    这将是自我回答的问题 .

    如果其他人都在我的位置,修复很简单 .

    如文档中所述:https://developer.android.com/studio/build/application-id.html

    在Android Studio中创建新项目时,applicationId与您在安装过程中选择的Java样式包名称完全匹配 . 但是,除此之外,应用程序ID和程序包名称彼此独立 . 您可以更改代码的包名称(代码名称空间),它不会影响应用程序ID,反之亦然(但是,再次发布应用程序时不应更改应用程序ID) .

    应用程序ID和Java包名称不一样 .

    因此,为了解决这个问题,我将我的软件包重命名为小写,并使用大写的应用程序ID . 问题消失了 .

    在构建结束时,构建工具将我们的应用程序ID复制到最终APK的清单中,这就是为什么它仍然是我认为的相同包 .

    也来自docs:

    还有一件事需要知道:尽管清单包和Gradle applicationId可能有不同的名称,但构建工具会在构建结束时将应用程序ID复制到APK的最终清单文件中 .

相关问题