Dro*_*ror 2 unity-game-engine admob
我正在尝试实施 Google AdMob 的 UMP,以实现 GDPR 等合规性。
在设备上部署时,此行运行后不久:
ConsentInformation.Update(request, OnConsentInfoUpdated);
Run Code Online (Sandbox Code Playgroud)
引发以下异常并停止游戏:
16054 16140 Error Unity Caused by: java.lang.ClassNotFoundException:
Didn't find class "com.google.android.ump.UserMessagingPlatform" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar",
zip file "/data/app/com.packagename-rCIR4M7S0arj_qYzQW_MZg==/base.apk"],
nativeLibraryDirectories=[/data/app/com.packagename-rCIR4M7S0arj_qYzQW_MZg==/lib/arm64, /data/a
Run Code Online (Sandbox Code Playgroud)
我尝试对 Proguard 进行一些更改,例如添加
-keep class com.google.android.gms.internal.consent_sdk.** { <fields>; }
Run Code Online (Sandbox Code Playgroud)
和
-keepattributes Signature
Run Code Online (Sandbox Code Playgroud)
但他们似乎没有帮助。
在 Unity 编辑器中运行它时没有任何问题。我正在使用 AdMob SDK v11.0.0 运行 Unity 2021.3.9f1。
任何帮助将不胜感激。
小智 5
我的 android/unity 游戏也遇到了同样的问题。
我可以通过将此行添加到我的proguard-user.txt文件中来解决此问题。
-keep public class com.google.android.ump.**{
public *;
}
Run Code Online (Sandbox Code Playgroud)
所以我的proguard-user.txt看起来像这样。
-keep class com.google.unity.** {
*;
}
-keep public class com.google.android.gms.ads.**{
public *;
}
-keep public class com.google.ads.**{
public *;
}
-keep public class com.google.android.ump.**{
public *;
}
-keepattributes *Annotation*
-dontobfuscate
Run Code Online (Sandbox Code Playgroud)
另外,我检查了“发布设置”->“Minifiy”下的Minify R8、发布和调试复选框
我希望这对你有用!