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或安卓应用捆绑包具有活动、活动别名、服务或广播接收方,意图为过滤,但没有';和
- Android viewpager检测滑动超出范围 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01
- Android - 拆分 Drawable 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- android 4中的android RadioButton问题 2022-01-01
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01