我知道这里提出几乎相同的问题,但接受的答案对我不起作用。
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
如果我将它更改为小写的一切正常,但情况是我们无法发布另一个具有不同包名的应用程序。
有没有可能解决这个问题?
答案 0 :(得分: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的最终清单文件中。 / p>