Unity 播放广告时切换前后台后,广告消失解决方案
原因: UnityPlayerActivity启动模式为singleTask(就是切换前后台时,始终恢复到游戏界面);官网解释
解决方案一
导出Android项目到AndroidStudio后再修改 AndroidManifest中 launchMode=“singleTop”,打包结束。
解决方案二
1.Unity -> PlayerSetting-> Publish Setting -> 勾选 Custom Launcher Gradle Template;
2.编辑 Assets\Plugins\Android\launcherTemplate.gradle 文件,在文件末尾添加一下内容即可。
// Modify launchMode
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def processManifest = output.getProcessManifestProvider().get()
processManifest.doLast { task ->
def outputDir = task.getManifestOutputDirectory()
File outputDirectory
if (outputDir instanceof File) {
outputDirectory = outputDir
} else {
outputDirectory = outputDir.get().asFile
}
File manifestOutFile = file("$outputDirectory/AndroidManifest.xml")
if (manifestOutFile.exists() && manifestOutFile.canRead() && manifestOutFile.canWrite()) {
def newManifest = manifestOutFile.getText().replace("android:launchMode=\"singleTask\"", "android:launchMode=\"singleTop\"")
manifestOutFile.write(newManifest, 'UTF-8')
}
// Make sure to modify bundle_manifest as well
outputDir = task.getBundleManifestOutputDirectory();
if(outputDir == null) return;
if (outputDir instanceof File) {
outputDirectory = outputDir
} else {
outputDirectory = outputDir.get().asFile
}
manifestOutFile = file("$outputDirectory/AndroidManifest.xml")
if (manifestOutFile.exists() && manifestOutFile.canRead() && manifestOutFile.canWrite()) {
def bundleManifest = manifestOutFile.getText().replace("android:launchMode=\"singleTask\"", "android:launchMode=\"singleTop\"")
manifestOutFile.write(bundleManifest, 'UTF-8')
}
}
}
}