Firebase广告:java.lang.InstantiationError:com.google.android.gms.internal.zznv

时间:2017-01-05 21:29:23

标签: android firebase admob google-admob

将AdMob添加到我的Android应用中让我很生气:o

Firebase已在运行(auth,db,...)。

我也为广告添加了gradle依赖性。
我完全按照谷歌的指示 我有两个问题:

  1. 我的xml布局文件中的AdView容器无法在预览中呈现。它说:
  2.   

    无法实例化以下类:com.google.android.gms.ads.AdView

         

    异常详细信息java.lang.NoClassDefFoundError:无法在com.google.android.gms.internal.zzez初始化com.google.android.gms.internal.zzeh类。在com.google.android.gms.internal.zzez。在com.google.android.gms.internal.zzez。在com.google.android.gms.ads.BaseAdView上。在com.google.android.gms.ads.AdView上。 at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)

    1. 如果我尝试在代码中初始化广告,则会在此代码行中崩溃:
    2.   

      MobileAds.initialize(getApplicationContext(),“ca-app-pub-XXXXXXXXXXXXXXXXX”);

           

      E / UncaughtException:java.lang.InstantiationError:com.google.android.gms.internal.zznv                            在com.google.android.gms.internal.zzeh。(未知来源)                            在com.google.android.gms.internal.zzeh。(未知来源)                            在com.google.android.gms.internal.zzfb.zza(未知来源)                            在com.google.android.gms.ads.MobileAds.initialize(未知来源)                            在com.google.android.gms.ads.MobileAds.initialize(未知来源)                            在de.philweb.myweightlog.MainActivity.onCreate(MainActivity.java:233)

      我尝试了所有我在SO上找到的东西。像MultiDex和添加AdsActivity一样,没有成功。现在我真的需要你的帮助:(

      谢谢你们, 菲尔

      清单:

      <?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="de.philweb.myweightlog">
      
      <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      
      <application
          android:allowBackup="true"
          android:icon="@mipmap/ic_launcher"
          android:label="@string/app_name"
          android:theme="@style/MyAppTheme">
          <activity
              android:name=".MainActivity"
              android:label="@string/app_name">
              <intent-filter>
                  <action android:name="android.intent.action.MAIN" />
                  <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
              <intent-filter>
                  <action android:name="android.intent.action.SEND" />
                  <category android:name="android.intent.category.DEFAULT" />
                  <data android:mimeType="text/plain" />
              </intent-filter>
          </activity>
          <!-- ATTENTION: This was auto-generated to add Google Play services to your project for App Indexing.  See https://g.co/AppIndexing/AndroidStudio for more information.
          -->
          <meta-data
              android:name="com.google.android.gms.version"
              android:value="@integer/google_play_services_version" />
      
      </application>
      

      这是我的build.gradle

      apply plugin: 'com.android.application'
      
      android {
          compileSdkVersion 25
          buildToolsVersion "25.0.0"
      
          defaultConfig {
              applicationId "de.philweb.myweightlog"
              minSdkVersion 16
              targetSdkVersion 22
      //        multiDexEnabled true
              versionCode 1
              versionName "1.0"
          }
          buildTypes {
              release {
                  minifyEnabled false
                  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
              }
          }
      }
      
      dependencies {
      //    compile fileTree(dir: 'libs', include: ['*.jar'])
          compile 'com.android.support:appcompat-v7:25.0.1' //22.2.0'
          compile 'com.android.support:support-v4:25.0.1' //22.2.0'
          compile 'com.google.firebase:firebase-core:10.0.1'
          compile 'com.google.firebase:firebase-crash:10.0.1'
          compile 'com.google.firebase:firebase-auth:10.0.1'
          compile 'com.google.firebase:firebase-database:10.0.1'
          compile 'com.google.firebase:firebase-ads:10.0.1'
          compile 'com.google.firebase:firebase-appindexing:10.0.1'
      //    compile 'com.android.support:multidex:1.0.1'
      
          compile 'com.android.support:design:25.0.1'
          compile 'com.firebaseui:firebase-ui:1.0.0'
      
          compile "com.androidplot:androidplot-core:1.4.0"
          compile 'com.darwinsys:hirondelle-date4j:1.5.1'
          compile('com.mikepenz:materialdrawer:5.8.0@aar') {
              transitive = true
          }
      }
      
      apply plugin: 'com.google.gms.google-services'
      

2 个答案:

答案 0 :(得分:0)

<uses-permission android:name="android.permission.INTERNET"/>

把它放在清单中。

答案 1 :(得分:0)

包含的库的大小和数量需要Multidex。你说你试图启用它。请注意three steps are required,包括对清单的更改。

此外,在使用Firebase库的10.0.1版时,您必须使用Firebase UI 1.0.1版:

compile 'com.firebaseui:firebase-ui:1.0.1'

Firebase UI docs包含兼容版本的表格。