【问题标题】:Android AdMob - NoSuchMethodError: No static method zzand()Android AdMob - NoSuchMethodError:没有静态方法 zzand()
【发布时间】:2016-08-21 21:32:05
【问题描述】:

我在尝试使用 Firebase Admob 广告时遇到了崩溃。我已按照指南进行操作,但仍然遇到这个奇怪的错误:

java.lang.NoSuchMethodError: No static method zzand()Lcom/google/android/gms/common/zzc; in class Lcom/google/android/gms/common/zzc; or its super classes (declaration of 'com.google.android.gms.common.zzc' appears in /data/data/tech.timmo.terminalwatch/files/instant-run/dex/slice-com.google.android.gms-play-services-basement-9.4.0_0d08c875bcfdb7f644dc6c5ac5fbcb017cb05b7c-classes.dex)
                                                                      at com.google.android.gms.ads.internal.util.client.zza.zzar(Unknown Source)
                                                                      at com.google.android.gms.ads.internal.client.zzl.zza(Unknown Source)
                                                                      at com.google.android.gms.ads.internal.client.zzl.zzl(Unknown Source)
                                                                      at com.google.android.gms.ads.internal.client.zzag.zza(Unknown Source)
                                                                      at com.google.android.gms.ads.MobileAds.initialize(Unknown Source)
                                                                      at com.google.android.gms.ads.MobileAds.initialize(Unknown Source)
                                                                      at tech.timmo.terminalwatch.ConfigActivity$override.onCreate(ConfigActivity.java:77)
                                                                      at tech.timmo.terminalwatch.ConfigActivity$override.access$dispatch(ConfigActivity.java)
                                                                      at tech.timmo.terminalwatch.ConfigActivity.onCreate(ConfigActivity.java:0)
                                                                      at android.app.Activity.performCreate(Activity.java:6251)
                                                                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
                                                                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
                                                                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
                                                                      at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4111)
                                                                      at android.app.ActivityThread.-wrap15(ActivityThread.java)
                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1369)
                                                                      at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                      at android.os.Looper.loop(Looper.java:148)
                                                                      at android.app.ActivityThread.main(ActivityThread.java:5461)
                                                                      at java.lang.reflect.Method.invoke(Native Method)
                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

这是我在onCreate() 中的初始化,错误指向MobileAds.initialise 的第一行:

MobileAds.initialize(getApplicationContext(), getString(R.string.banner_ad_unit_id));
AdView adView = (AdView) findViewById(R.id.adView);
adView.setAdSize(AdSize.SMART_BANNER);
AdRequest adRequest = new AdRequest.Builder()
        .addTestDevice("9A3855EFE9914A3C40BF5A33DABB4701")
        .build();
adView.loadAd(adRequest);

xml:

<com.google.android.gms.ads.AdView
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:adSize="SMART_BANNER"
    app:adUnitId="@string/banner_ad_unit_id" />

【问题讨论】:

    标签: java android firebase google-api admob


    【解决方案1】:

    这种类型的错误表明了潜在的原因。

    您运行应用程序的设备可能不支持您正在使用的 SDK 元素。

    但在大多数情况下,它们只是由于build.gradle 中的gms 库的版本升级而引入的随机错误。

    在您的build.gradle 依赖项中恢复以前版本的 gms,错误应该会消失。等到 google 发布下一个版本,然后通过版本升级更新库依赖。

    【讨论】:

      【解决方案2】:

      你在这个坏掉之前更新了 SDK 吗?

      有两个build.gradle 文件,root\build.gradle 中的一个项目和root\app\build.gradle 中的模块一个。打开项目build.gradle文件。

      浏览所有版本号(buildToolsVersion、编译、..)并根据当您将鼠标光标悬停在 Android Studio 上时给出的提示更新它们。

      如果不与您一起修复,请转到 file-&gt;settings-&gt;'android SDK'-&gt;'SDK tools' 并更新所有工具。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多