- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个应用程序,我正在尝试使用我的原始包名称进行编译,与此非常相似: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
但是,如果您之前编译并发布到 Google Play 的应用程序在包名称的一部分末尾带有下划线,会发生什么情况?例如我找到了这个例子:https://play.google.com/store/apps/details?id=com.mobincube.tarifas_taxi_.sc_35K1XV
它以这个包名部分“.tarifas_taxi_.
”发布到 Google Play
那个开发者(和我)现在如何在那个位置编译我们的带有下划线的应用程序?
最佳答案
AAPT2 不允许包名称以“单词”结尾或以下划线字符开头。
这里对于包“com.mypackage.name_.app”,违规的词是“name_”。删除下划线或使用“name_foo”(单词中间允许使用下划线)即可。
问题跟踪器上有一个 Unresolved 问题,AAPT2 的所有者正在查看它。
关于android - APT : error: attribute 'package' in tag is not a valid Java package name: 'com.mypackage.name_.app' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49298143/
我是一名优秀的程序员,十分优秀!