如果刚从旧系统切换到 Gradle 并从新系统导出 Android 项目,可能会遇到构建错误,尤其是在使用其他 Android 库或者添加了自定义 AndroidManifest.xml 的情况下。
Android Gradle 插件远比旧的 ADT/Ant 系统更挑剔。它不接受 任何它认为有错的内容,无论是重复的符号、对不存在资源的引用 还是与主应用程序设置相同属性的库项目。
在大多数情况下,修复此类问题涉及编辑 AndroidManifest.xml 文件;要么是主文件, 要么是项目使用的库中的文件。
在不寻常的项目中,或者如果项目有下方故障排除部分未描述的问题, 请将项目导出为 Gradle 项目(通过 __Build Settings__)并从命令行进行构建。从命令行进行构建可提供更详细的错误消息,并在应用更改时提供更短的周转时间。
一个 AndroidManifest.xml 文件(主文件或库中的文件)引用不存在的 资源。通常,该资源是由库设置的应用程序图标或标签字符串。如果 已将主清单复制到库项目但未删除这些引用,则会发生这种情况。
从其中一个 Android 清单(通常是库中的清单)中删除该属性。
主应用程序和库项目之间或两个库项目之间存在 文件名冲突。请注意,所有文件都会复制到同一 APK 包中。
需要删除其中一个文件。
库不能使用与主应用程序或任何其他库相同的 Java 包。
Usually, you should change the package name of the library to something different. If the library contains a lot of code, it may be easier to change the main package name (from the Player settings).
A library can not freely override attributes from the main AndroidManifest.xml
file. Often this error is caused by a library setting the application icon or label string, similar to the Resource not found problem above.
从库中删除属性,或者将 tools:replace 属性添加到 application 标签以指示应如何解决合并冲突。