You uploaded an APK or Android App Bundle which has an activity, activity alias, service or broadcast receiver with intent filter, but without the #39;an(您上传的APK或安卓应用捆绑包具有活动、活动别名、服务或广播接收方,意图为过滤,但没有#39;和) - IT屋-程序员软件开发技术
问题描述
问题:您上传了一个apk或android应用包,其中包含有意使用过滤的活动、活动别名、服务或广播接收器,但没有设置‘android:export’属性。此文件无法安装在Android 12或更高版本上。请参阅:developer.android.com/about/versions/12/behavior-changes-12#exported 我的AndroidManifest.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" />
推荐答案
遵守谷歌新策略如果您的应用程序以android 12或更高版本为目标,并且包含使用意图过滤器的活动、服务或广播接收器,则必须显式声明这些应用程序组件的android:EXPORTED属性。 您可以按照以下步骤操作:
打开AndroidManifest.xml文件,然后在底部选择"合并清单"。 如下所示:
如果您无法预览合并清单,则在build.gradle文件中 设置pileSdkVersion 30和targetSdkVersion 30并同步您的项目,现在再次尝试打开合并的清单,我希望这一次您能正确预览合并的清单。但是,如果没有预览,请不要担心,您仍然可以从项目中使用的不同第三方库导航到各个清单文件。
现在检查所有使用Intent-过滤(不带android:exports标签)的活动、服务、接收方。在主清单文件中,您可以简单地将android:export属性添加到活动标记中,因此添加android:export=&qot;";并在这些引号内设置一个布尔值。现在您可能会问,我何时需要将Android:EXPORTED=&TRUE&QOT;或Android:EXPORTED=&FALSE&QOT;添加到使用意图过滤器的活动、服务或广播接收器中。如果应用程序组件包含Launcher类别,请将android:export设置为true。在大多数其他情况下,将android:export设置为false。
注意:还要检查单个第三方库清单文件。如果使用有任何活动、服务或接收方,则必须使用android:exports属性覆盖主清单文件中的相同活动、服务或接收方。
例如,在我的示例中,我在我的主清单文件中为每个活动、服务或接收者定义了Android:Export,但在我的项目中我使用的是Razorpay依赖项,因此在razorpay的清单中,如果发现有使用属性的活动和接收者,而没有使用android:export属性,则在razorpay清单中声明它们 如下图所示:
<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>
注意:在您的情况下,可能需要检查更多文件,检查活动、服务,并在主清单文件中提及它们。
- 完成所有这些操作后,您还可以在build.gradle文件中改回targetSdkVersion 31和编译SdkVersion 31。
这篇关于您上传的APK或安卓应用捆绑包具有活动、活动别名、服务或广播接收方,意图为过滤,但没有';和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:您上传的APK或安卓应用捆绑包具有活动、活动别名、服务或广播接收方,意图为过滤,但没有';和
基础教程推荐
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01