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

上传了一个APK,该APK具有活动、活动别名、服务或带有intentfilter的广播接收器,但没有“Android:导出”属性集

燕青青
2023-03-14

我在将应用程序包上载到play console时遇到问题,您上载了一个APK或Android应用程序包,该应用程序包具有活动、活动别名、服务或广播接收器(带有意图过滤器),但没有“Android:exported”属性集。无法在Android 12或更高版本上安装此文件。但我的清单文件包含该属性。

舱单文件:-

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="**********">
    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
         calls FlutterMain.startInitialization(this); in its onCreate method.
         In most cases you can leave this as-is, but you if you want to provide
         additional functionality it is fine to subclass or reimplement
         FlutterApplication and put your custom class here. -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
    <uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />


    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="*****"
        android:requestLegacyExternalStorage="true"
        android:usesCleartextTraffic="true"
        android:icon="@mipmap/ic_launcher">


        <meta-data
          android:name="com.google.firebase.messaging.default_notification_icon"
          android:resource="@drawable/ic_stat_artboard_1" />

        <meta-data android:name="com.google.android.geo.API_KEY"
            android:value="Z*********"/>

        <provider
            android:name="vn.hunghd.flutterdownloader.DownloadedFileProvider"
            android:authorities="im.mingguang.mingguang_app.flutter_downloader.provider"
            android:grantUriPermissions="true"
            android:requestLegacyExternalStorage="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"/>
        </provider>

        <provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${applicationId}.provider"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/provider_paths"/>
</provider>
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:exported="true"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
            <intent-filter>
                <action android:name="FLUTTER_NOTIFICATION_CLICK" />
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
</manifest>

错误:-在此处输入图像描述

共有3个答案

施博文
2023-03-14

在您的清单文件检查所有的活动,服务,接收器,使用意图过滤器没有android:导出标签。在您的主清单文件中,您可以简单地将android:导出属性添加到活动标记中,因此添加android:导出=",并在这些引号中设置布尔值。现在你可能会问,什么时候我需要添加android:导出="true"或android:导出="false"到使用意图过滤器的活动,服务或广播接收器。如果应用程序组件包括LAUNCHER类别,设置android:导出为true。在大多数其他情况下,设置android:导出为false。

注意:还要检查单个第三方库清单文件,如果有任何活动、服务或接收者使用,则必须使用android:exported属性覆盖主清单文件中的相同活动、服务或接收者。

关于更多的解释,你们可以参考我对同一问题的回答。

澹台浩广
2023-03-14

大约在1月11日,Play Store在上传APK时引入了一个lint检查,以验证导出的属性是否在清单中正确设置。

像DexGuard这样混淆属性名称的工具将导致Play Store linter失败,因为它将无法检查导出的属性。

要解决此问题,请配置模糊处理工具以将属性名称保留在清单中
以下是我们用于DexGuard的规则:

-keepresourcexmlattributenames manifest/**

屠瑞
2023-03-14

我面临同样的问题,但我通过在显示的android:name=“.MainActivity”图像下方的活动中编写android:exported=“true”来解决

 类似资料:
  • 问题:您上传了一个APK或Android应用程序捆绑包,该捆绑包具有活动、活动别名、服务或带有意图过滤器的广播接收器,但没有“Android:导出”属性集。此文件不能安装在Android 12或更高版本。请参阅:developer.android.com/about/versions/12/behavior-changes-12#exported我的Androidanifest.xml文件

  • 嗨,有人能帮我吗?我只是按照这里的说明:开发者。Androidcom/about/versions/12/behavior-changes-12#导出 但我仍然得到同样的错误“你上传了一个APK或Android应用程序包,它有一个活动,活动别名,服务或广播接收器与意图过滤器,但没有'Android:导出'属性集。此文件不能安装在Android 12或更高版本。见:developer.android

  • 我目前正在使用SharedReferences跟踪通过AlarmManager启动的BroadcastReceiver中要执行工作的项列表。除了一个特定的场景外,一切都很好。当我触发一个新项目来执行工作时,让它完成工作,然后删除该项目(全部通过SharedReferences编辑),它在应用程序运行时工作得很好。当列表中没有任何内容,我打开任务管理器并终止应用程序时,该项突然出现在Broadcas

  • 每当它收到消息时,它都会在后台运行,即使应用程序没有运行,它也应该从后台启动活动

  • 问题内容: 我在我的App中有不同之处,在所有这些方面,我都不需要。我找不到如何禁用它。我试图找到一个属性将其应用于,但到目前为止我什么都没找到。有人可以帮我吗? 问题答案: 哈哈,我刚才也被困在这一点上,所以很高兴我可以为您提供解决方案,至少对我有用:) 您想要做的是在values / styles.xml中定义一个新样式,如下所示 只有NoActionBar样式对您来说才有意义。最后,您必须在

  • 我的应用程序中有不同的< code >活动,我不想要所有这些< code >活动栏。我找不到关闭它的方法。我试图找到一个属性,将其应用到< code>main_activity.xml中,但是到目前为止,我什么也没有找到。有人能帮我吗?