致命异常:java.lang.NoClassDefFoundError com.google.android.gms.internal.firebase-perf.zzw

时间:2018-08-21 03:04:57

标签: android firebase noclassdeffounderror

在应用启动时遇到此错误。

  

致命异常:java.lang.NoClassDefFoundError:   com.google.android.gms.internal.firebase-perf.zzw          com.google.firebase.perf.metrics.Trace.start(未知来源)          在com.google.android.gms.internal.firebase-perf.zze.onActivityStarted(未知   资源)          在android.app.Application.dispatchActivityStarted(Application.java:205)          在android.app.Activity.onStart(Activity.java:1156)          在android.support.v4.app.FragmentActivity.onStart(未知来源)          在android.support.v7.app.AppCompatActivity.onStart(未知来源)          在android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1268)          在android.app.Activity.performStart(Activity.java:6333)          在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2542)          在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2671)          在android.app.ActivityThread.-wrap11(ActivityThread.java)          在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1501)          在android.os.Handler.dispatchMessage(Handler.java:111)          在android.os.Looper.loop(Looper.java:207)          在android.app.ActivityThread.main(ActivityThread.java:5774)          在java.lang.reflect.Method.invoke(Method.java)          在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:791)          在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:681)

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        maven {
            url 'https://maven.fabric.io/public'
        }
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
        classpath 'com.google.gms:google-services:3.2.0'
        classpath 'com.google.firebase:firebase-plugins:1.1.5'
        classpath 'io.fabric.tools:gradle:1.24.4'


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

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}
allprojects {
    repositories {
        maven { url "https://jitpack.io" }
        google()
    }
}

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

//

apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-crash'
apply plugin: 'io.fabric'
// Create a variable called keystorePropertiesFile, and initialize it to your
// keystore.properties file, in the rootProject folder.
def keystorePropertiesFile = rootProject.file("keystore.properties")

// Initialize a new Properties() object called keystoreProperties.
def keystoreProperties = new Properties()

// Load your keystore.properties file into the keystoreProperties object.
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"
    defaultConfig {
        applicationId "com.abc.xyz"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 18
        versionName "1.9"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }

//Signing configurations for build variants "release"
    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:27.1.1'
    compile 'com.android.support.constraint:constraint-layout:1.1.2'
    compile 'com.android.support:design:27.1.1'
    compile 'com.android.support:support-v4:27.1.1'
    compile 'com.android.support:cardview-v7:27.1.1'
    compile 'de.hdodenhof:circleimageview:2.2.0'
    compile 'com.squareup.retrofit2:retrofit:2.3.0'
    compile 'com.squareup.retrofit2:converter-gson:2.3.0'
    compile 'com.squareup.okhttp3:okhttp-urlconnection:3.4.1'
    compile 'com.squareup.okhttp3:logging-interceptor:3.5.0'
    compile 'com.android.support:support-vector-drawable:27.1.1'
    compile 'com.google.firebase:firebase-crash:16.0.1'
    compile 'com.google.firebase:firebase-messaging:17.3.0'
    compile 'com.google.firebase:firebase-config:16.0.0'
    compile 'com.google.android.gms:play-services-location:15.0.1'
    compile 'com.google.android.gms:play-services-maps:15.0.1'
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.google.firebase:firebase-auth:16.0.3'
    compile 'com.google.android.gms:play-services-auth:16.0.0'
    compile 'com.google.firebase:firebase-core:16.0.1'
    compile 'com.google.firebase:firebase-perf:16.1.0'
    compile 'com.google.android.gms:play-services-places:15.0.1'

 compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') {
        transitive = true
    }
    testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.firebase-perf'

5 个答案:

答案 0 :(得分:5)

Firebase崩溃版本 firebase-perf版本必须小于或等于 Firebase-core版本,因此在您的代码中将 Firebase-crash:16.0.1版本更改为Firebase-crash:16.0.0 ,将 firebase-perf:16.1.0版本更改为firebase-perf:16.0.0 您的Firebase核心版本为16.0.1

   compile 'com.google.firebase:firebase-perf:16.0.0'
   compile 'com.google.firebase:firebase-crash:16.0.0'

答案 1 :(得分:4)

我遇到了同样的问题,尽管Siva Kumar的解决方案可行,但对我也有用的是在您的项目 build.gradle 中使用最新的google-services库:

dependencies {
    classpath 'com.google.gms:google-services:4.1.0'
}

答案 2 :(得分:1)

对我来说,其他解决方案均无效。非常令人沮丧的是,该应用程序甚至没有启动。 最后,我删除了性能监控:

//apply plugin: 'com.google.firebase.firebase-perf'
//implementation 'com.google.firebase:firebase-perf:16.1.2'

答案 3 :(得分:0)

我的问题分两个步骤解决:

  • 首先,我将build.gradle(应用程序)中的所有Firebase依赖项更新为最新版本。 只需更新每个突出显示的Firebase依赖项
  • 将build.gradle(项目)上的google-services库更新为最新版本。您还可以使用android studio的警告提示来指导您。

    dependencies {
        classpath 'com.google.gms:google-services:4.3.0' // this is the latest as at July, 2019
    }
    

此后一切都应该正常工作。

我希望这会有所帮助。快活的编码!

答案 4 :(得分:-3)

根据Firebase上的先决条件文档-有关android的性能监控文档:

  

开始之前,您需要在环境中进行一些设置:

A device running Android 4.0 (Ice Cream Sandwich) or newer, and Google Play services 16.1.0 or higher
The Google Play services SDK from the Google Repository, available in the Android SDK Manager
The latest version of Android Studio, version 2.2 or higher

此链接详细说明了设置。

Firebase Performance Monitoring Guide

此外,亚历克斯(Alex)提到了通过升级gradle中提到的依赖项来在构建周期中引入最新google服务的方式

classpath 'com.google.gms:google-services:4.1.0'