25.9% Crash Rate - [base.apk] com.unity3d.player.ReflectionHelper.-$$Nest$smnativeProxyInvoke
<!-- DO NOT DELETE
validate_template=true
template_path=.github/ISSUE_TEMPLATE/bug_report.md
-->
### [REQUIRED] Step 1: Describe your environment
* Unity version: 6000.3.2f1
* Google Mobile Ads Unity plugin version: v10.7.0
* Plugin installation method: .unitypackage import, downloaded from releases page in Github
* Platform: Android
* Platform OS version: Android 15 (SDK 35), Android 16 Beta (SDK 36), Android 13 (SDK 33), Android 14 (SDK 34)
* Any specific devices issue occurs on: Happening on multiple devices
* Mediation ad networks used, and their versions: Using GMA plugin only for UMP. Ads are integrated using Levelplay mediation. (Note: GMA plugin version used by levelplay and the native one installed are the same)
### [REQUIRED] Step 2: get 25.9%Crash on google consent with 10.7.0 sdk. Similar issue on closed state: https://github.com/googleads/googleads-mobile-unity/issues/3981
#### Steps to reproduce:
backtrace:
#00 pc 0x00000000000f4e88 /apex/com.android.runtime/lib64/bionic/libc.so (tgkill+8)
#01 pc 0x0000000001332214 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#02 pc 0x00000000013327a4 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#03 pc 0x000000000113fbec /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#04 pc 0x0000000001108b94 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#05 pc 0x000000000142d73c /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#06 pc 0x0000000001430c10 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#07 pc 0x0000000001430de4 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#08 pc 0x00000000006e9790 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#09 pc 0x000000000542ee6c /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#10 pc 0x00000000026a0544 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#11 pc 0x00000000026a0490 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#12 pc 0x0000000000a06d44 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#13 pc 0x0000000000a1a024 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#14 pc 0x0000000000a19e60 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#15 pc 0x0000000000a5d14c /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#16 pc 0x0000000000a25ebc /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#17 pc 0x0000000000a262d4 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#18 pc 0x0000000000a25e30 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#19 pc 0x0000000000a6e0f0 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#20 pc 0x0000000000a6dfd4 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#21 pc 0x00000000007efbe0 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#22 pc 0x00000000007f0ab4 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#23 pc 0x00000000006f382c /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#24 pc 0x000000000553e0d4 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#25 pc 0x000000000553df18 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#26 pc 0x0000000003500988 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#27 pc 0x00000000029c0570 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#28 pc 0x00000000028f7a28 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#29 pc 0x00000000028f938c /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#30 pc 0x00000000029b735c /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#31 pc 0x00000000026a0544 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#32 pc 0x00000000026a0490 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#33 pc 0x00000000026a08f4 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#34 pc 0x000000000264a4bc /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#35 pc 0x0000000004c15308 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#36 pc 0x00000000054d229c /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#37 pc 0x00000000054d1c2c /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#38 pc 0x00000000054d669c /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#39 pc 0x0000000002540228 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#40 pc 0x00000000026a05c8 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#41 pc 0x00000000026a0490 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libil2cpp.so (BuildId: 8d656dc606adb0ad238b8055776a0981988b6a4a)
#42 pc 0x0000000000a06d44 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#43 pc 0x0000000000a1a024 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#44 pc 0x00000000007188ac /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/lib/arm64/libunity.so (BuildId: 4c1b56ed56930dc614f80aaf12d88f9bfe6e8e51)
#45 pc 0x0000000000da8828 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+136)
#46 pc 0x0000000000668b6c /apex/com.android.art/lib64/libart.so (nterp_helper+1948)
#47 pc 0x00000000004e6b4c /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/base.apk (com.unity3d.player.ReflectionHelper.-$$Nest$smnativeProxyInvoke)
#48 pc 0x0000000000668404 /apex/com.android.art/lib64/libart.so (nterp_helper+52)
#49 pc 0x00000000004f17c0 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/base.apk (com.unity3d.player.r.invoke+44)
#50 pc 0x00000000003a8a44 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.lang.reflect.Proxy.invoke+84)
#51 pc 0x00000000002ab060 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640)
#52 pc 0x00000000002cc110 /apex/com.android.art/lib64/libart.so (art::InvokeProxyInvocationHandler(art::ScopedObjectAccessAlreadyRunnable&, char const*, _jobject*, _jobject*, std::__1::vector<jvalue, std::__1::allocator<jvalue>>&)+384)
#53 pc 0x00000000002cd064 /apex/com.android.art/lib64/libart.so (artQuickProxyInvokeHandler+976)
#54 pc 0x00000000002c1d1c /apex/com.android.art/lib64/libart.so (art_quick_proxy_invoke_handler+76)
#55 pc 0x000000000066a1a4 /apex/com.android.art/lib64/libart.so (nterp_helper+7636)
#56 pc 0x000000000051ce64 /data/app/~~KfLRH-56K8wtBsScj8aFJQ==/com.example.game-aQMivyhXBr7oorl88xki6A==/base.apk (com.google.android.gms.internal.consent_sdk.zzr.run+16)
#57 pc 0x00000000009402c4 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Handler.dispatchMessage+68)
#58 pc 0x0000000000943b14 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loopOnce+980)
#59 pc 0x000000000094369c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loop+540)
#60 pc 0x00000000006ec5bc /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread.main+2060)
#61 pc 0x00000000002ab060 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640)
#62 pc 0x00000000002a11a0 /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+552)
#63 pc 0x00000000005ac718 /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+32)
#64 pc 0x0000000000da0624 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+116)
#65 pc 0x0000000000c593b4 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+116)
#66 pc 0x0000000000c637cc /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+3276)
#67 pc 0x00000000002ab060 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640)
#68 pc 0x00000000002a9d4c /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+876)
#69 pc 0x000000000060b5ac /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+184)
#70 pc 0x00000000000da290 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+104)
#71 pc 0x00000000000ef7fc /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+924)
#72 pc 0x00000000000025b8 /system/bin/app_process64 (main+1284)
#73 pc 0x000000000008d604 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+116)
#### Relevant Code:
```
public class GoogleUMPManager : MonoBehaviour {
/// <summary>
/// If true, it is safe to call MobileAds.Initialize() and load Ads.
/// </summary>
public static GoogleUMPManager instance;
public bool CanRequestAds => ConsentInformation.CanRequestAds();
private void Awake() {
//RaiseAdEventsOnUnityMainThread is obsolete, need to use MobileAdsEventExecutor.ExecuteInUpdate
// MobileAds.RaiseAdEventsOnUnityMainThread = true;
//fix taken from https://github.com/googleads/googleads-mobile-unity/issues/3940#issuecomment-3249647257
MobileAdsEventExecutor.Initialize();
if (instance == null) {
instance = this;
DontDestroyOnLoad(this.gameObject);
} else if (instance != this) {
Destroy(this.gameObject);
return;
}
}
/// <summary>
/// Startup method for the Google User Messaging Platform (UMP) SDK
/// which will run all startup logic including loading any required
/// updates and displaying any required forms.
/// </summary>
public void GatherConsent(Action<string> onComplete = null) {
Util.Log("UMP - Gathering consent.");
var requestParameters = new ConsentRequestParameters {
// False means users are not under age.
TagForUnderAgeOfConsent = false
};
#if UNITY_EDITOR
onComplete?.Invoke(null);
return;
#endif
// The Google Mobile Ads SDK provides the User Messaging Platform (Google's
// IAB Certified consent management platform) as one solution to capture
// consent for users in GDPR impacted countries. This is an example and
// you can choose another consent management platform to capture consent.
MobileAdsEventExecutor.ExecuteInUpdate(() => {
ConsentInformation.Update(requestParameters, (FormError updateError) => {
if (updateError != null) {
onComplete?.Invoke(updateError.Message);
Util.LogError("UMP error: " + updateError.Message);
return;
}
// Determine the consent-related action to take based on the ConsentStatus.
if (CanRequestAds) {
// Consent has already been gathered or not required.
// Return control back to the user.
onComplete?.Invoke(null);
Util.LogError("UMP Consent has already been gathered or not required");
return;
}
// Consent not obtained and is required.
// Load the initial consent request form for the user.
ConsentForm.LoadAndShowConsentFormIfRequired((FormError showError) => {
if (showError != null) {
// Form showing failed.
if (onComplete != null) {
onComplete?.Invoke(showError.Message);
Util.LogError("UMP Form show Error: " + showError.Message);
}
}
// Form showing succeeded.
else if (onComplete != null) {
onComplete?.Invoke(null);
}
});
});
});
}
/// <summary>
/// Shows the privacy options form to the user.
/// </summary>
/// <remarks>
/// Your app needs to allow the user to change their consent status at any time.
/// Load another form and store it to allow the user to change their consent status
/// </remarks>
public void ShowPrivacyOptionsForm(Action<string> onComplete) {
Util.Log("Showing privacy options form.");
MobileAdsEventExecutor.ExecuteInUpdate(() =>{
ConsentForm.ShowPrivacyOptionsForm((FormError showError) => {
if (showError != null) {
// Form showing failed.
if (onComplete != null) {
onComplete(showError.Message);
}
}
// Form showing succeeded.
else if (onComplete != null) {
onComplete(null);
}
});
});
}
/// <summary>
/// Reset ConsentInformation for the user.
/// </summary>
public void ResetConsentInformation() {
ConsentInformation.Reset();
}
public bool GetConsentStatus() {
Util.Log("UMP: Get consent status. + " + ConsentInformation.ConsentStatus);
if (ConsentInformation.ConsentStatus == ConsentStatus.Obtained || ConsentInformation.ConsentStatus == ConsentStatus.NotRequired) {
return true;
}
return false;
}
}
Metod usage:
GoogleUMPManager.instance.GatherConsent((error) => {
if (!string.IsNullOrEmpty(error)) {
Util.Log("unity-script: init failed UMP error: " + error);
return;
}
if (!this._isSdkInitialized) {
this._Init(); //calls levelplay sdk init
}
});
```
0 条评论