使用 Android Studio 4.2.1,在我的 build.gradle 文件中将 sdk 目标更改为 Android 12 后,出现Manifest merger failed with multiple errors, see logs
错误。
Merged Manifest
选项卡中显示的错误如下:
Merging Errors:
Error: Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details. My_App.app main manifest (this file)
Error: Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has …
Run Code Online (Sandbox Code Playgroud) 升级到 android 12 后,应用程序未编译。表明
“清单合并因多个错误而失败,请参阅日志”
合并清单中显示的错误:
合并错误:错误:android:exported 需要为 明确指定。面向 Android 12 及更高版本的应用需要为
android:exported
相应组件定义了意图过滤器时指定显式值。有关详细信息,请参阅 https://developer.android.com/guide/topics/manifest/activity-element#exported。主清单(此文件)
我已将所有活动设置为android:exported="false"
. 但它仍然显示这个问题。
我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="eu.siacs.conversations">
<uses-sdk tools:overrideLibrary="net.ypresto.androidtranscoder" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission
android:name="android.permission.READ_PHONE_STATE"
android:maxSdkVersion="22" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-feature …
Run Code Online (Sandbox Code Playgroud) 合并错误:错误:需要为元素 <receiver#com.instacart.library.truetime.BootCompletedBroadcastReceiver> 显式指定 android:exported。
android:exported
当相应组件定义了意图过滤器时,面向 Android 12 及更高版本的应用需要指定显式值。 有关详细信息,请参阅 https://developer.android.com/guide/topics/manifest/activity-element#exported 。test.app 主清单(此文件),第 19 行
我什至不知道该怎么办。我为这个错误挣扎了整整一个星期,但我做不到。
这是我的sdk版本
compileSdkVersion 32
defaultConfig {
multiDexEnabled true
applicationId "com.example.app"
minSdkVersion 21
targetSdkVersion 32
versionCode 53
versionName "2.0.4"
ndk.abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Run Code Online (Sandbox Code Playgroud)
写android:exported
在所有intent-filter
、service
、 和上provider
。啊,我没有receiver
这个错误中提到的。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation "com.android.billingclient:billing:4.0.0"
implementation "com.google.firebase:firebase-messaging:23.0.0"
implementation "com.google.firebase:firebase-crashlytics:18.2.7"
implementation "com.google.firebase:firebase-analytics:20.0.2"
implementation "com.google.firebase:firebase-perf:20.0.4"
implementation "com.google.firebase:firebase-dynamic-links:21.0.0" …
Run Code Online (Sandbox Code Playgroud) 我是使用 cordova-android 构建 Android 应用程序的新手。
我在更新项目根目录的 config.xml 中的compileSdkVersion/buildToolsVersion 时遇到问题。
由于 cordova-android version-9 支持 api level 29,但由于 Android SDK API level 30 可用,cordova-android 尚未提供支持。
我尝试更新首选项compileSdkVersion/buildToolsVersion,如下所示在config.xml中
<?xml version='1.0' encoding='utf-8'?>
Run Code Online (Sandbox Code Playgroud)
我的第一个应用程序 测试应用程序 你的名字在这里
有人可以帮我更新以上两个属性,以便可以使用最新的 SDK API 级别 30 构建 apk。
我正在使用 React Native:
npx react-native run-android
Run Code Online (Sandbox Code Playgroud)
我还有很多其他解决方案。比如强制或更新targetsdk版本并编译SDK版本,但没有任何效果。
我尝试将compileSdkVersion 30更改为compileSdkVersion 31,将targetSdkVersion 30更改为targetSdkVersion 31。
依赖项的 AAR 元数据 (META-INF/com/android/build/gradle/aar-metadata.properties) 中指定的 minCompileSdk (31) 大于此模块的compileSdkVersion (android-30)。
Dependency: androidx.appcompat:appcompat:1.4.1.
Run Code Online (Sandbox Code Playgroud)
// Top-level build file where you can add configuration
// options common to all sub-projects/modules.
buildscript {
ext {
buildToolsVersion = "30.0.2"
minSdkVersion = 21
compileSdkVersion = 31
targetSdkVersion = 31
ndkVersion = "21.4.7075529"
firebaseMessagingVersion = "21.1.0"
googlePlayServicesVisionVersion = "19.0.0"
playServicesVersion = "17.0.0" // or find latest version
androidMapsUtilsVersion = "2.2.5"
kotlin_version = …
Run Code Online (Sandbox Code Playgroud) 我正在探索文档中指定的撰写导航。
添加文档中指定的版本的依赖项2.4.0-alpha07
会出现以下错误,
错误1
检查 AAR 元数据值时发现的一个或多个问题:
依赖项的 AAR 元数据 (META-INF/com/android/build/gradle/aar-metadata.properties) 中指定的 minCompileSdk (31) 大于此模块的compileSdkVersion (android-30)。依赖项:androidx.navigation:navigation-compose:2.4.0-alpha07。AAR 元数据文件:/Users/abhimanyu/.gradle/caches/transforms-3/0575ff5712e0a9c15b8d7424501c07b8/transformed/jetified-navigation-compose-2.4.0-alpha07/META-INF/com/android/build/gradle/aar-metadata。特性。
这个错误迫使我将我的应用程序从 30 升级到 31 compileSdkVersion
。targetSdkVersion
升级版本出现这个错误,
错误2
清单合并失败:针对 Android 12 及更高版本的应用需要
android: exported
在相应组件定义了意图过滤器时指定显式值。有关详细信息,请参阅https://developer.android.com/guide/topics/manifest/activity-element#exported 。
为了解决这个问题,检查了这篇文章。
即使添加后android:exported
,我也收到相同的错误(错误2)。
compileSdkVersion
升级到31是强制的吗?
如果是,如何解决错误2。如果否,如何解决错误1?
如果可能的话,我个人更喜欢坚持使用 SDK 30。
我最近安装了 android SDK 5.1 之后,我收到了以前从未见过的新错误,例如未安装应用程序错误。如果用户单击设备中的应用程序图标,则会出现此错误。您能建议如何解决此问题吗?这是我的清单代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.srikanth"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<!-- Internet permission -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<application
android:name="com.srikanth.utils.AppController"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
<activity
android:name="com.srikanth.SplashActivity"
android:label="@string/app_name"
android:exported="true"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/APP_ID" />
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProvider1234"
android:exported="true" />
<activity android:name="com.srikanth.MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category …
Run Code Online (Sandbox Code Playgroud)