1 您上传的APK或Android App Bundle内含活动、活动别名、服务或广播接收器,这些项目有intent过滤器,但没有"androidexported"届性设置。此文件无法在Android 12或更高版本上安装。详情请参阅:developer.android.com/about/versions/12/behavior-changes-12#exported
官网解释
解决办法:
<activity
android:name="org.cocos2dx.javascript.AppActivity"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:launchMode="singleTask"
android:taskAffinity=""
android:exported="true"
>
2 This project uses AndroidX dependencies, but the ‘android.useAndroidX’ property is not enabled. Set this property to true in the gradle.properties file and retry.
解决办法:
加上:
android.useAndroidX=true
android.enableJetifier=true
3 this release is not compliant with the google play 64-bit requirement
解决方案:

有的SDK需要换成64位的。
4 图片插屏广告 InterstitialImage 需要放在UI线程中
private void showInterstitialInUIThread() {
new Thread(new Runnable() {
@Override
public void run() {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
//图片插屏广告显示
mUnifiedInterstitialADImg.showAd();
}
});
}
}).start();
5 app:transformClassesAndResourcesWithProguardFor
在混淆文件中添加以下内容
-ignorewarnings
6 banner 广告顶部移动到底部
...
int width = ViewGroup.LayoutParams.MATCH_PARENT;
ViewGroup rootView = findViewById(android.R.id.content);
rootView.addView(adView);
这种banner广告一般是在顶部
要移动到底部只需要加上
adView.setTranslationY(rootView.getHeight() - heightPx);
7 广告填充失败延迟加载
long delayMillis = TimeUnit.SECONDS.toMillis((long) 2);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
loadAd();
}
}, delayMillis);
8 android 调用cocos
javaCallCocos("RewardADFinishCallback()")
...
private void javaCallCocos(final String param) {
runOnGLThread(new Runnable() {
@Override
public void run() {
Cocos2dxJavascriptJavaBridge.evalString(param);
}
});
}
9 游戏加震动
AndroidManifest.xml 中添加
<uses-permission android:name="android.permission.VIBRATE"/>
…
private Vibrator vibrator = null;
...
public static void CallVibrate() {
if (AppActivity.instance != null) {
if (AppActivity.instance.vibrator.hasVibrator()) {
AppActivity.instance.vibrator.vibrate(300);
}
}
}
cocos creator 中调用
/**手机震动 */
public static PhoneVibrator() {
let className = "org/cocos2dx/javascript/AppActivity";
let methodName = "CallVibrate"
let param = "()V";
jsb.reflection.callStaticMethod(className, methodName, param);
}


