相关疑难解决方法(0)

针对 Android 12 的清单合并失败

使用 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 android-manifest android-studio android-12

17
推荐指数
3
解决办法
5839
查看次数

android:exported 需要为 <activity> 明确指定。针对 Android 12 及更高版本的应用需要指定

升级到 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)

java android android-manifest kotlin android-12

14
推荐指数
15
解决办法
2442
查看次数

清单合并失败:需要为 &lt;receiver&gt; 显式指定 android:exported

合并错误:错误:需要为元素 <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-filterservice、 和上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)

java sdk android android-manifest

7
推荐指数
2
解决办法
1万
查看次数

cordova android 更新compileSDK版本

我是使用 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。

android cordova cordova-android

6
推荐指数
2
解决办法
2万
查看次数

React Native:依赖项的 AAR 元数据中指定的 minCompileSdk (31) 大于此模块的compileSdkVersion (android-30)

我正在使用 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)

我的 build.gradle 文件

// 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)

android react-native

4
推荐指数
1
解决办法
5164
查看次数

Android Jetpack Compose 导航中的依赖性问题

我正在探索文档中指定的撰写导航。

添加文档中指定的版本的依赖项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 compileSdkVersiontargetSdkVersion

升级版本出现这个错误,

错误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 android-jetpack-compose jetpack-compose-navigation

3
推荐指数
1
解决办法
6083
查看次数

应用程序未安装 android 错误

我最近安装了 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)

android android-manifest

1
推荐指数
2
解决办法
7280
查看次数