不幸的是,项目在添加admob广告后已停止

时间:2016-10-24 11:06:57

标签: android firebase admob

这是我的app build gradle code

apply plugin: 'com.android.application'

android {
compileSdkVersion 24
buildToolsVersion "24.0.2"

defaultConfig {
    applicationId "com.example.personal.numbermania"
    minSdkVersion 10
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}

dexOptions {
    incremental true
    javaMaxHeapSize "4g" //Here stablished how many cores you want to use your android studi 4g = 4 cores
}


buildTypes {
    debug
            {
                debuggable true
            }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.google.firebase:firebase-ads:9.6.1'
compile 'com.google.firebase:firebase-core:9.6.1'
compile 'com.google.android.gms:play-services:9.6.1'

}

apply plugin: 'com.google.gms.google-services'

这是我的项目构建gradle

//顶级构建文件,您可以在其中添加所有子项目/模块共有的配置选项。

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.1.3'
    classpath 'com.google.gms:google-services:3.0.0'


    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

}

allprojects {
repositories {
    jcenter()
}

}

task clean(type: Delete) {
delete rootProject.buildDir

}

运行error

时出现错误

2 个答案:

答案 0 :(得分:0)

在致电AdView之前进行初始化

    MobileAds.initialize(getApplicationContext(), "ca-app-pub-3940256099942544~3347511713");
    //replace your ID
    AdView mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

更多详情请参阅Here

答案 1 :(得分:0)

编译代码后,每个类都有.class个文件 你的计划。这些文件包括Java用于解释和运行程序的字节码。 JVM尝试查找.class文件,但是找不到它会导致运行时错误NoClassDefError

将以下代码添加到build.gradle文件可解决此问题:

dexOptions {
   incremental true
   javaMaxHeapSize "4g" 
}

尝试调试/解决此问题的其他事项

方法1:

  • Android SDK Manager>更新 Google Play服务修订版30 Extras
  • com.android.support.multidex:1.0.1添加到您的依赖项中,或删除multiDexEnabled true(如果不需要)。
  • 将属性 - android:name="android.support.multidex.MultiDexApplication"添加到AndroidManifest
  • 中的应用标记

注意:如果您的AndroidManifest已定义了自定义应用程序类,请扩展MultiDexApplication而不是Application

方法2:

更新Application类的另一种方法:

public class App extends Application {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        ...
    }

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}

方法3:

如果方法1和方法2不成功,请尝试将您的Google Play服务相关性降级为8.4.0