android -面向Android 12及更高版本的应用需要为“android:exported”指定显式值

yc0p9oo0  于 2023-03-06  发布在  Android
关注(0)|答案(2)|浏览(348)

我已将SDK版本更新为31,之后我收到此错误。这是我的Gradle:

android {
    compileSdkVersion 31

    defaultConfig {
        applicationId "com.persiandesigners.alldentshops"
        minSdkVersion 16
        targetSdkVersion 31
        vectorDrawables.useSupportLibrary = true
        versionCode 1
        versionName "1"
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}

dependencies {
    implementation 'androidx.appcompat:appcompat:1.4.0'
    implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha01'
    implementation 'androidx.cardview:cardview:1.0.0-alpha01'
    implementation 'com.google.android.material:material:1.2.0-alpha01'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4'

我得到这个错误:清单合并失败:需要为显式指定android:exported。如果对应组件定义了Intent过滤器,则面向Android 12及更高版本的应用需要为android:exported指定显式值。有关详细信息,请参阅www.example.com。https://developer.android.com/guide/topics/manifest/activity-element#exported for details.
我照它说的做了,这是我的清单代码:

<activity
        android:name="mypackage.MainActivity"
        android:exported="true"
        tools:node="merge"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/SplashScreenTheme"
        android:windowSoftInputMode="stateAlwaysHidden">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

这是启动器活动,我已经添加了android:exported标记,我尝试了清理和重建,但它不工作。我仍然在清单合并中得到合并错误:

Merging Errors: Error: android:exported needs to be explicitly specified for <activity>. 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. forushgah_alldentalshop.app main manifest (this file)

它指向主活动

qgelzfjb

qgelzfjb1#

如果您使用的是flutter,可能是您的应用程序中的一些过时的lib导致了这种情况..在我的情况下:将flutter_local_notifications升级到最新版本(现在是9.3.2)解决了此错误。

h5qlskok

h5qlskok2#

如果您的应用面向Android 12或更高版本,并且包含使用Intent过滤器的Activity、服务或广播接收器,则您必须显式声明这些应用组件的android:exported属性。
请注意,这适用于所有使用意图过滤器的活动、服务和广播接收器。
进行更改。保存。使缓存无效并重新启动android studio并检查。

相关问题