构建失败,缺少 'package' 关键属性
Build Failed, Missing 'package' key attribute
我正在尝试生成签名的 apk,但我一直收到此错误。我在 Google 上搜索错误,但没有找到任何可靠的信息。任何帮助都会很棒。谢谢。
Task :app:processReleaseManifest FAILED [com.facebook.android:audience-network-sdk:6.4.0] /Users/xxxx/.gradle/caches/transforms-2/files-2.1/1208b0b00589b6f8b9220695fa10ec7b/audience-network-sdk-6.4.0/AndroidManifest.xml:12:9-55 Error: Missing 'package' key attribute on element package at [com.facebook.android:audience-network-sdk:6.4.0] AndroidManifest.xml:12:9-55 [com.facebook.android:audience-network-sdk:6.4.0] /Users/xxxx/.gradle/caches/transforms-2/files-2.1/1208b0b00589b6f8b9220695fa10ec7b/audience-network-sdk-6.4.0/AndroidManifest.xml Error: Validation failed, exiting
See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.
Execution failed for task ':app:processReleaseManifest'.
> Manifest merger failed with multiple errors, see logs
可能是因为 Android 团队对 Gradle 做了一些改动。现在,如果您的 Gradle 版本低于 4.1,您可能会看到以下一个或多个错误:
- Android 资源链接失败 /Users/sample/AndroidStudioProjects/MyApp/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml:18:错误:在
<manifest>
中找到意外元素 <queries>
- 清单合并因多个错误而失败,请参阅日志
- 错误:元素包上缺少 'package' 关键属性
为了解决这些问题,他们建议做以下两件事之一:
1.将您的 Gradle 升级到 4.1 版本或更高版本
只需通过更改类路径中的版本来更新您的 build.gradle 文件。
buildscript {
repositories {
// Gradle 4.1 and higher include support for Google's Maven repo using
// the google() method. And you need to include this repo to download
// Android Gradle plugin 3.0.0 or higher.
google()
...
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.0' //change it here
}
}
2。将您的 Gradle 更新为与当前版本兼容的版本
如果您不想将 Gradle 更新到最新版本,您可以通过将其更改为与您正在使用的版本等效的点版本来坚持使用当前版本,而不必担心兼容性问题。
Your current version
Dot release equivalent
4.1.*
No upgraded needed
4.0.*
4.0.1
3.6.*
3.6.4
3.5.*
3.5.4
3.4.*
3.4.3
3.3.*
3.3.3
例如,如果您的应用程序 运行 为 4.0.0,您只需在 build.gradle 文件中也将其更改为 4.0.1:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
// classpath 'com.android.tools.build:gradle:4.0.0'
classpath 'com.android.tools.build:gradle:4.0.1'
}
}
Google 如果您的应用依赖于第三方 API 或旧 Gradle 版本,建议使用第二个选项。
We know that not everyone is ready to upgrade to the latest version, though, and you may be relying on old versions of Gradle or libraries that aren’t compatible with 4.1.
您可以详细了解他们 official post here 中发生的变化。
我正在尝试生成签名的 apk,但我一直收到此错误。我在 Google 上搜索错误,但没有找到任何可靠的信息。任何帮助都会很棒。谢谢。
Task :app:processReleaseManifest FAILED [com.facebook.android:audience-network-sdk:6.4.0] /Users/xxxx/.gradle/caches/transforms-2/files-2.1/1208b0b00589b6f8b9220695fa10ec7b/audience-network-sdk-6.4.0/AndroidManifest.xml:12:9-55 Error: Missing 'package' key attribute on element package at [com.facebook.android:audience-network-sdk:6.4.0] AndroidManifest.xml:12:9-55 [com.facebook.android:audience-network-sdk:6.4.0] /Users/xxxx/.gradle/caches/transforms-2/files-2.1/1208b0b00589b6f8b9220695fa10ec7b/audience-network-sdk-6.4.0/AndroidManifest.xml Error: Validation failed, exiting
See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.
Execution failed for task ':app:processReleaseManifest'.
> Manifest merger failed with multiple errors, see logs
可能是因为 Android 团队对 Gradle 做了一些改动。现在,如果您的 Gradle 版本低于 4.1,您可能会看到以下一个或多个错误:
- Android 资源链接失败 /Users/sample/AndroidStudioProjects/MyApp/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml:18:错误:在
<manifest>
中找到意外元素 - 清单合并因多个错误而失败,请参阅日志
- 错误:元素包上缺少 'package' 关键属性
<queries>
为了解决这些问题,他们建议做以下两件事之一:
1.将您的 Gradle 升级到 4.1 版本或更高版本
只需通过更改类路径中的版本来更新您的 build.gradle 文件。
buildscript {
repositories {
// Gradle 4.1 and higher include support for Google's Maven repo using
// the google() method. And you need to include this repo to download
// Android Gradle plugin 3.0.0 or higher.
google()
...
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.0' //change it here
}
}
2。将您的 Gradle 更新为与当前版本兼容的版本
如果您不想将 Gradle 更新到最新版本,您可以通过将其更改为与您正在使用的版本等效的点版本来坚持使用当前版本,而不必担心兼容性问题。
Your current version | Dot release equivalent |
---|---|
4.1.* | No upgraded needed |
4.0.* | 4.0.1 |
3.6.* | 3.6.4 |
3.5.* | 3.5.4 |
3.4.* | 3.4.3 |
3.3.* | 3.3.3 |
例如,如果您的应用程序 运行 为 4.0.0,您只需在 build.gradle 文件中也将其更改为 4.0.1:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
// classpath 'com.android.tools.build:gradle:4.0.0'
classpath 'com.android.tools.build:gradle:4.0.1'
}
}
Google 如果您的应用依赖于第三方 API 或旧 Gradle 版本,建议使用第二个选项。
We know that not everyone is ready to upgrade to the latest version, though, and you may be relying on old versions of Gradle or libraries that aren’t compatible with 4.1.
您可以详细了解他们 official post here 中发生的变化。