我有一个应用程序,我尝试使用原始程序包名称进行编译,与此类似:com.mypackage.name_.app'
该应用程序已成功编译至今,我已迁移到最新版本的gradle,并且我正在使用API 24进行编译。之前我使用过旧版本的gradle和API 23.
现在,在尝试编译该应用时,我收到了此错误:
APT: error: attribute 'package' in tag is not a valid Java package name: 'com.mypackage.name_.app'.
.
.
Failed to execute aapt
com.android.ide.common.process.ProcessException: Failed to execute aapt
.
.
Caused by: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:482)
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:794)
我在此处发现AAPT2在您的软件包名称的一部分末尾不允许使用下划线:All of my android studio projects and all new ones give me errors coming from the debug android manifest file
但是,如果您之前编译并发布到谷歌中,会在您的软件包名称的一部分结尾处使用下划线播放应用程序会发生什么?例如,我找到了这个示例:{{3 }}
使用此软件包名称部分" .tarifas_taxi_.
"
开发人员(和我)现在如何编译我们的应用程序,并在该位置使用下划线?
由于
答案 0 :(得分:2)
AAPT2不允许使用'单词'结束或以下划线字符开头。
这里是包" com.mypackage.name_.app"令人讨厌的词是" name _"。删除下划线或使用" name_foo" (在这个词的中间允许使用下划线)使其工作
问题跟踪器上有一个未解决的问题,AAPT2的所有者正在查看它。