当前位置: 首页 > 知识库问答 >
问题:

锁定android 12失败,错误为“android:已导出”`

宋昕
2023-03-14

设置android:exported后仍然出现此错误,当相应组件在清单上设置所有组件后定义了意图过滤器时,针对android 12及更高版本的应用程序需要为android:exported指定显式值,仍然收到错误“错误:当相应组件定义了意图过滤器时,针对Android 12及更高版本的应用程序需要为Android:exported指定显式值。”

<?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="com.easymountain.quechua">

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

<!--    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />-->
<!--        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"-->
<!--            tools:ignore="ScopedStorage" />-->
<!--    <uses-permission-->

    <uses-permission
        android:name="android.permission.CLEAR_APP_CACHE"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
    <uses-permission android:name="com.huawei.permission.external_app_settings.USE_COMPONENT" />
    <uses-permission android:name="oppo.permission.OPPO_COMPONENT_SAFE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
    <uses-permission android:name="com.huawei.permission.external_app_settings.USE_COMPONENT" />
    <uses-permission android:name="oppo.permission.OPPO_COMPONENT_SAFE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />


    <application
        android:name=".base.BaseApplication"
        android:allowBackup="false"
        android:fullBackupContent="false"
        android:hardwareAccelerated="true"
        android:icon="@mipmap/ic_launcher"
        android:installLocation="internalOnly"
        android:label="@string/screen_app_name"
        android:largeHeap="true"
        android:requestLegacyExternalStorage="true"
        android:networkSecurityConfig="@xml/network_security_config"
        android:screenOrientation="portrait"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:usesCleartextTraffic="true"
        tools:replace="android:name,android:hardwareAccelerated,android:allowBackup,android:label">


        <!--        SDKNAVIGATION      -->

        <activity
            android:name="com.easymountain.quechua.ui.sdknavigation.MpMainActivity"
            android:configChanges="orientation|screenSize|locale"
            android:exported="true"
            android:screenOrientation="portrait"
            tools:node="merge"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
                <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />

                <data android:scheme="geo" />
            </intent-filter>
        </activity>
        <service
            android:name="com.easymountain.quechua.ui.sdknavigation.navigation.delegate.MpTraceRecorder"
            android:foregroundServiceType="location"
            android:exported="true"
            android:permission="android.permission.BIND_JOB_SERVICE" />

        <activity
            android:name="com.easymountain.quechua.ui.sdknavigation.poinative.fragment.MpVideoPlayerFullScreenActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
            android:screenOrientation="landscape"
            android:exported="false"
            android:theme="@style/VideoPlayerTheme" />

        <!--        <activity-->
        <!--            android:name="com.onegravity.contactpicker.core.ContactPickerActivity"-->
        <!--            android:enabled="true"-->
        <!--            android:exported="false">-->

        <!--            <intent-filter>-->
        <!--                <category android:name="android.intent.category.DEFAULT" />-->
        <!--                <category android:name="android.intent.category.BROWSABLE" />-->
        <!--            </intent-filter>-->
        <!--        </activity>-->

        <meta-data
            android:name="preloaded_fonts"
            android:resource="@array/preloaded_fonts" />

        <!--        SDKNAVIGATION -->


        <activity
            android:name=".ui.splash.SplashActivity"
             android:screenOrientation="portrait"
            android:exported="true"
            tools:node="merge"
            android:theme="@style/AppTheme.NoActionBarSplash">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ui.authentification.AuthWebViewActivity"
            android:exported="false"
            android:theme="@style/Theme.AppCompat.Light.NoActionBar">

        </activity>
        <activity
            android:name=".ui.main.MainActivity"
             android:configChanges="orientation"
             android:screenOrientation="portrait"
            android:launchMode="singleTop"
            android:theme="@style/Theme.AppCompat.Light.NoActionBar"
            android:windowSoftInputMode="stateAlwaysHidden|adjustPan|adjustResize"
            android:exported="true"
            tools:node="merge"
            tools:ignore="LockedOrientationActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:scheme="quechuahikefinder" />
            </intent-filter>
            <intent-filter>
                <action android:name="quechuahikefindermobileapplication.HANDLE_AUTHORIZATION_RESPONSE" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity android:name="net.openid.appauth.RedirectUriReceiverActivity"
            android:exported="true"
            tools:node="merge">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:host="login"
                    android:scheme="quechuahikefinder" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="@string/mp_google_map_api_key" />
        <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id"
            tools:replace="android:value" />

        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true"
            tools:replace="android:authorities">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"
                tools:replace="android:resource"/>
        </provider>

        <service
            android:name=".service.MyFirebaseMessagingService"
            android:exported="false"
            android:stopWithTask="false">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>

        <receiver android:name=".ui.utils.gpsStatusListener.GpsLocationReceiver"
            android:exported="true"
            tools:node="merge"
            tools:ignore="Instantiatable">
            <intent-filter>
                <action android:name="android.location.PROVIDERS_CHANGED" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>

        <provider
            android:name="androidx.work.impl.WorkManagerInitializer"
            android:authorities="com.decathlon.quechuafinder.workmanager-init"
            android:exported="false"
            tools:node="remove" />
    </application>

</manifest>

共有1个答案

孔波
2023-03-14

您需要指定android:exported=“false”android:exported=“true”

<activity
          android:name=".MainActivity"
          android:exported="true"
          android:theme="@style/Theme.MyApplication.NoActionBar">
          <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
    </activity>

如果您的应用程序以Android 12为目标,并且包含使用意图过滤器的活动、服务或广播接收器,则必须显式声明这些应用程序组件的android:导出属性。

警告:如果活动、服务或广播接收器使用意向过滤器,并且没有为android:exported显式声明值,则您的应用程序无法安装在运行android 12的设备上。

还要检查何时为android:exported值使用true/false

 类似资料:
  • 我试图运行机器人框架测试用例,它使用SSH库。我已经安装了所有必需的库(在本例中为参数库)。但是我仍然得到这个错误。 我得到的错误是: 当我试图再次安装Paramiko,我得到以下输出: `已满足要求(使用--升级到升级):paramiko in/usr/local/lib/python2.7/dist-packages/paramiko-1.15.2-py2.7.egg 要求已经满足(使用升级升

  • 我试图在调试模式下运行应用程序,但我得到以下错误: 下面是我的build.gradle文件: 这个错误快把我逼疯了,谁能帮帮我吗。我的代码达到了65K的限制,所以我添加了multiDexEnabled选项。

  • 我使用SpringDataJPA和Hibernate作为PostgreSQL上的持久性提供者。我试图提供悲观锁定: 我尝试从两个线程中调用< code>findOneAndLock。我认为,如果< code >线程A锁定了对象,那么< code >线程B应该等到锁被释放。而是< code >线程B抛出< code > org . spring framework . ORM . objectopt

  • 问题内容: 所以我知道这个问题在烧瓶中并不陌生,而且人们以前已经问过。但是,由于我是python的新手,因此在bash中执行数据库命令时仍然遇到问题。这就是我所做的 但是执行插入语句后,我得到操作错误:数据库已锁定。有人可以简单地说出这个错误是什么意思吗?以及如何解决。提前致谢 问题答案: SQLite是一个轻量级的数据库,因此不支持高级别的并发性。OperationalError:数据库已锁定错

  • 导入失败,出现以下错误: C:\Users\bhush 导入tensorflow作为tf回溯(最后一次调用):文件“C:\Users\bhush\AppData\Local\Programs\Python\Python36\lib\site packages\tensorflow\uuuuu init\uuuuu.py”第34行中第1行的文件“”_应用程序编程接口。v1导入兼容文件“C:\User

  • 背景资料 Spring Actuctor提供的管理URL在点击关闭后似乎仍然运行良好。 发布前控制台输出 10:01:42.496[main]INFO O.s.B.C.E.T.TomCatEmbeddedServletContainer-Tomcat在端口上启动:8002(http)10:01:42.499[main]INFO com.xyz.api.main-在5.956秒内启动main(JVM

  • 我的控制台中出现以下错误。 失败:生成已完成,但有2次失败。 > 错误:任务“:React-Native-Video:CompileDebugJavaWithJavac”执行失败。 编译失败;有关详细信息,请参阅编译器错误输出。 尝试: > 错误:任务“:React-native-firebase:CompileDebugJavaWithJavac”执行失败。 编译失败;有关详细信息,请参阅编译器

  • 我是科尔多瓦的新手。我按照本教程创建了一个android项目。但我在MAC上面临以下错误: 错误:错误:命令“android”失败。确保已安装最新的Android SDK,并且“Android”命令(位于工具/文件夹内)已添加到您的路径中。 我反复更新了Android SDK,也编辑了PATH--- 导出路径=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin