有大神?cocosCreator2.4.8打包android-34 在谷歌审核被拒(广播接收器注册有误registerReceiver)

cocosCreator2.4.8打包android-34 在谷歌审核被拒
原因如下:
以 Android 13 或更高版本为目标平台的应用在调用registerReceiver()时必须指定导出行为。如果未指定导出行为,可能会导致应用崩溃。您的应用以 Android 13 或更高版本为目标平台,并注册了非系统广播接收器,但未在以下位置指定其导出行为:请更新您的应用,为已注册的广播接收器指定导出行为。
了解详情忽略问题

按照文档修改后打包,仍旧是被拒,拒审原因一样(registerReceiver()时必须指定导出行为):

附上文档:https://developer.android.com/develop/background-work/background-tasks/broadcasts?hl=zh-cn#manifest-declared-receivers

看着应该是你照着他们文档修改一下就可以了吧。

你贴的图只是代码,是不是清单里有receiver标签没有export?


问题是我没有receiver标签。。。

。。。已经按照文档的要求修改了,还是一样的提示。。我这边也没有receiver标签。我不太确定有什么遗漏导致。。

谷歌审核拒绝的原因是因为在你的应用中注册了广播接收器(Broadcast Receiver),而在目标平台为Android 13或更高版本时,需要指定广播接收器的导出行为,否则可能会导致应用崩溃。这个问题通常是在应用中的 AndroidManifest.xml 文件中处理的。

要解决这个问题,你需要按照以下步骤进行操作:

  1. 更新 AndroidManifest.xml 文件: 找到你的项目中的 AndroidManifest.xml 文件,通常位于项目的根目录下的 assets 目录或者是 res 目录中的 AndroidManifest.xml 文件。确保在注册广播接收器的地方添加导出行为。

    例如,如果你在 AndroidManifest.xml 中注册了一个广播接收器,应该像这样指定导出行为:

    <receiver android:name=".MyBroadcastReceiver"
              android:exported="true">
        <intent-filter>
            <action android:name="com.example.MY_ACTION" />
        </intent-filter>
    </receiver>
    

    这里的 android:exported="true" 就是指定广播接收器的导出行为。

  2. 重新打包和提交应用: 更新完 AndroidManifest.xml 文件后,重新打包你的应用,并将新版本提交到 Google Play 开发者控制台进行审核。

  3. 测试和验证: 在重新提交之前,建议在不同的 Android 版本上测试你的应用,确保广播接收器的注册和导出行为都能正确工作,不会引起崩溃或审核问题。

通过这些步骤,应该能够解决谷歌审核中提到的问题,并通过审核重新发布你的应用。

打出来的包看一下里面的清单,会不会是sdk加了?
另外测试轨道是不是也替换成了最新修改过的包?

上图的xml截图就是打包出来的清单文件。上传的文件也确实是最新修改过的包

我搜索了整个打包出来的工程涉及到Broadcast就这里了


注册部分就这里

都是cocosCreator自带的,这样的话我需要在清单中添加指定导出行为?

还是说代码
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent intent = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
intent = context.registerReceiver(sBatteryReceiver, intentFilter, Context.RECEIVER_EXPORTED);
} else {
intent = context.registerReceiver(sBatteryReceiver, intentFilter);
}
sBatteryReceiver.setBatteryLevelByIntent(intent);

这块我需要对
Intent.ACTION_BATTERY_CHANGED(public static final String ACTION_BATTERY_CHANGED = “android.intent.action.BATTERY_CHANGED”;)(此定义在Intent.java)

android.intent.action.BATTERY_CHANGED在清单那边导出?

好吧,这下更蒙蔽了,同样的打包工具,安卓模板,打包其他项目上架是没问题的。自动化工具,安卓模板都是我做的,我确定每个项目之间的清单文件和java部分代码是没任何差异的。。。为啥出现了2种结果。。

是我引入com.applovin.mediation:mintegral-adapter这个sdk导致的。。