我试图在我的Unity游戏中实现MediationTestSuite,但遇到此异常,因此看不到MediationTestSuite

异常(exception):

java.lang.IllegalStateException: setAdListener must be called on the main UI thread.
        at lr.b(:com.google.android.gms.policy_ads_fdr_dynamite@[email protected]:1)
        at com.google.android.gms.ads.nonagon.shim.f.a(:com.google.android.gms.policy_ads_fdr_dynamite@[email protected]:14)
        at com.google.android.gms.ads.nonagon.shim.g.a(:com.google.android.gms.policy_ads_fdr_dynamite@[email protected]:4)
        at com.google.android.gms.ads.internal.client.ap.a(:com.google.android.gms.policy_ads_fdr_dynamite@[email protected]:62)
        at ff.onTransact(:com.google.android.gms.policy_ads_fdr_dynamite@[email protected]:4)
        at android.os.Binder.transact(Binder.java:667)

我的代码是
public void OnButtonClick()
{
    GoogleMobileAdsMediationTestSuite.Api.MediationTestSuite.Show();
}

绑定(bind)在场景中的单个按钮上。

我试图通过分派(dispatch)此调用直接在Update方法中执行此操作,还尝试创建一个空的Unity项目并仅将GoogleMobileAds-v4.1.0 + GoogleMobileAdsUnityAdsMediation + GoogleMobileAdsMediationTestSuite添加到其中,所有这些都是直接从Google链接下载的。

是我在这里缺少的东西,还是只是MediationTestSuite发生了错误,并在单独的线程中调用了一些UI内容?

它绝对不是AdMob Interstitial and error isLoaded must be called on the main UI thread的副本,因为它在Unity中,而且我无法访问MeditationTestSuite库代码。

最佳答案

好。一切都很简单。显然,当您的统一构建没有“development build”标记时,MediationTestSuite会引发此类异常。但是我确实有。情况是我应该在gradle构建任务中使用 assembleDebug
我遇到了这个问题,因为我是通过导出到android项目而不是统一构建来手动构建android的。

10-08 03:11