在开始之前,让我解释一下假设:
我意识到使用大写的包名称是不好的约定。在我的情况下,我们正在处理一个第三方发布的 Android 应用程序,其包名称大写,不幸的是应用程序有数百万次下载,因此重新发布不是一个选择。
我已经做好了广泛的研究并找不到解决方案,最接近的问题是this https://stackoverflow.com/questions/19188338/why-is-android-studio-having-problems-with-capitalized-package-names and this https://stackoverflow.com/questions/26721951/install-parse-failed-manifest-malformed and this https://stackoverflow.com/questions/6056564/installation-error-install-parse-failed-manifest-malformed.
问题 :
App最初是用eclipse开发的,它可以创建具有大写包名的签名应用程序。应用程序现在必须转移到AS,它拒绝生成带有大写包名的签名apk。请参阅下面的错误:
以下是我的清单文件的相关部分:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="TESTING.CAPITALIZED"
...
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name="TESTING.CAPITALIZED.Activity_xxx"
...
请注意,我已尝试将清单活动标记的命名约定更改为:(但同样的错误)
<activity
android:name=".Activity_xxx"
...
问题:
我们需要 Android Studio 中的一种方法/技巧来解决这个问题。我不关心它如何或是否涉及魔法,例如编辑 dll,需要在 AS 中生成签名的 apk。
附加发现:看来在Android Studio中,只要包中的第一个字母是小写,我们就可以编译并生成apk。例如,在我的示例中,如果我将项目重构为 zTESTING.CAPITALIZED,我可以成功生成 apk。然而,这并不能解决我的问题,因为我客户的包名称全部大写。
如果有人正在寻找答案,这个问题已在 Android Studio 3.0 RC1 中得到解决。如果您遇到任何问题,请参阅谷歌问题跟踪器并更新https://issuetracker.google.com/issues/64595077 https://issuetracker.google.com/issues/64595077
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)