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

您上载了一个APK或Android应用程序捆绑包,该捆绑包具有活动、活动别名、服务或广播接收器,带有意向过滤器,但没有“an”

魏康安
2023-03-14

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

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.c4life.guardianangel">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<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"/>


<application
   tools:replace="android:label"
   android:label="GA"
   android:exported="true"
   android:icon="@mipmap/ic_launcher">
   <meta-data android:name="com.google.android.geo.API_KEY"
       android:value=""/>
    <activity
        android:name=".MainActivity"
        android:exported="true"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">
        <meta-data
          android:name="io.flutter.embedding.android.NormalTheme"
          android:resource="@style/NormalTheme"
          />
        <meta-data
          android:name="io.flutter.embedding.android.SplashScreenDrawable"
          android:resource="@drawable/launch_background"
          />
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
   <service android:name="changjoopark.com.flutter_foreground_plugin.FlutterForegroundService" android:exported="false"/>
    <meta-data
        android:name="flutterEmbedding"
        android:value="2" />


</application>

<uses-sdk
    android:targetSdkVersion="30"
    tools:overrideLibrary="changjoopark.com.flutter_foreground_plugin" />

共有1个答案

经炜
2023-03-14

根据谷歌的新政策,如果你的应用目标是Android 12或更高版本,并且包含使用意向过滤器的活动、服务或广播接收器,你必须明确声明这些应用组件的Android:exported属性。您可以按照以下步骤操作:

如果您无法预览合并的清单,请在您的生成中。gradle文件集编译DKVersion 30和TargetSDKVVersion 30,并同步您的项目,现在再次尝试打开合并清单。我希望这次您能够正确预览合并清单。但是,如果没有预览,不用担心,您仍然可以从项目中使用的不同第三方库导航到单个清单文件。

现在检查所有活动、服务和接收器,它们使用不带android:exported标记的意图过滤器。在主清单文件中,您只需将android:exported属性添加到活动标记中,即可添加android:exported=“”,并在这些引号内设置一个布尔值。现在您可能会问,何时需要将android:exported=“true”或android:exported=“false”添加到使用意图过滤器的活动、服务或广播接收器中。如果应用程序组件包括启动器类别,请将android:exported设置为true。在大多数其他情况下,将android:exported设置为false。

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

例如,在我的情况下,我已经定义了Android:导出为每一个活动,服务或接收器在我的主清单文件,但在我的项目中,我使用RazorPay依赖,所以在razorPay的清单中,如果发现有一个活动和接收器正在使用没有Android的属性:导出,所以我声明他们在我的主要清单文件。

 <activity
        android:name="com.razorpay.CheckoutActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:theme="@style/CheckoutTheme"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <data
                android:host="rzp.io"
                android:scheme="io.rzp" />
        </intent-filter>
    </activity>

    <receiver android:name="com.razorpay.RzpTokenReceiver"
        android:exported="true"
        android:permission="android.permission.INTERNET">
        <intent-filter>
            <action android:name="rzp.device_token.share" />
        </intent-filter>
    </receiver>

注意:在您的情况下,您可能需要查看更多文件,检查活动和服务,并在主清单文件中提及它们。

  • 同样,在完成所有这些操作之后,您可以在构建中更改回targetSdkVersion 31并编译SDK版本31。格雷德尔档案
 类似资料:
  • 嗨,有人能帮我吗?我只是按照这里的说明:开发者。Androidcom/about/versions/12/behavior-changes-12#导出 但我仍然得到同样的错误“你上传了一个APK或Android应用程序包,它有一个活动,活动别名,服务或广播接收器与意图过滤器,但没有'Android:导出'属性集。此文件不能安装在Android 12或更高版本。见:developer.android

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

  • 我有两个不同的活动菜单和练习。当我通过单击按钮开始后一个活动时,我需要将一些数据从菜单传递给练习。这是菜单活动中的代码: 使用调试工具,我检查了所有数据是否正确地位于intent包中。下面是从练习活动中的意图中检索数据的代码: 事实上,当我得到这个包时,它是空的,显然我无法继续。 此外,我已经在其他活动之间使用了几乎相同的代码,一切正常。 为什么会发生这种情况?是不是我错过了什么导致了这个错误?也

  • 我刚刚启动了一个新的应用程序,但当我点击欢迎登船页面上的“关于您的应用程序的环境”链接时,会出现这个错误。 启动应用程序时出错当Pow试图运行时,您的Rack应用程序引发了异常。 Bundler::,但找不到任何源代码 我的应用正在运行: 轨道3.2。6 Ruby 1.9。3p194 Rubygems 1.8。24 RVM 1.14。5 战俘0.4。0 我发现了类似的问题,问题在于如何让乘客安静下

  • 我很难将javafx应用程序构建到中。应用程序(适用于mac)。我找到了一种合法的方法,以下是相关资源:http://docs.oracle.com/javafx/2/deployment/deploy_quick_start.htm然而,这远远不是我想要的。通过遵循该教程,我成功地从我的javafx项目中构建了一个应用程序,然而文件的大小太荒谬了,这是因为整个JRE都被捆绑在里面了。我现在正在寻

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