在模拟器上打开应用程序时获取java.lang.NoClassDefFoundError:com.google.firebase.FirebaseOptions

时间:2015-12-29 09:52:56

标签: java android android-studio

我正在更新我的问题,因为之前的问题不符合stackoverflow的标准。

尝试在模拟器中打开应用程序时,我正在关注与异常相关的firebase。

 java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions
                                                                at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
                                                                at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
                                                                at android.content.ContentProvider.attachInfo(ContentProvider.java:1058)
                                                                at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
                                                                at android.app.ActivityThread.installProvider(ActivityThread.java:4819)
                                                                at android.app.ActivityThread.installContentProviders(ActivityThread.java:4432)
                                                                at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4372)
                                                                at android.app.ActivityThread.access$1300(ActivityThread.java:141)
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
                                                                at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                at android.os.Looper.loop(Looper.java:137)
                                                                at android.app.ActivityThread.main(ActivityThread.java:5041)
                                                                at java.lang.reflect.Method.invokeNative(Native Method)
                                                                at java.lang.reflect.Method.invoke(Method.java:511)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
                                                                at dalvik.system.NativeStart.main(Native Method)

应用程序在我的实际设备上正常运行。以上错误仅在仿真器上引发。 我没有在我的整个应用程序中使用firebase,但我使用Google Play服务来获取当前位置。 以下是我的gradle文件:

apply plugin: 'com.android.application'

android {

    dexOptions {
        javaMaxHeapSize "4g"
    }
        packagingOptions {
            exclude 'META-INF/NOTICE' // will not include NOTICE file
            exclude 'META-INF/LICENSE' // will not include LICENSE file

        }
        compileSdkVersion 23
        buildToolsVersion "23.0.2"

        defaultConfig {
            applicationId "com.wingsapp"
            minSdkVersion 16
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
            multiDexEnabled true
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        testCompile 'junit:junit:4.12'
        compile files('libs/httpclient-4.0-alpha4.jar')
        compile files('libs/android-query-full.0.26.7.jar')
        compile group: 'org.apache.httpcomponents', name: 'httpclient-android', version: '4.3.5.1'
        compile('org.apache.httpcomponents:httpmime:4.3') {
            exclude module: "httpclient"
        }


        compile 'com.android.support:appcompat-v7:23.3.0'
        compile 'com.android.support:recyclerview-v7:23.3.0'
        compile 'com.android.support:design:23.3.0'
        compile 'com.android.support:support-v4:23.3.0'
        compile 'com.google.android.gms:play-services:9.0.0'
        compile 'com.joooonho:selectableroundedimageview:1.0.1'
        compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
        compile 'com.google.android.gms:play-services-ads:9.0.0'
        compile 'com.google.android.gms:play-services-auth:9.0.0'
        compile 'com.google.android.gms:play-services-gcm:9.0.0'
    }

P.S。 :我已经在android studio 1.5上开发了这个应用程序,它也在模拟器上运行,现在我已升级到android studio 2.1.1,从那以后只在模拟器上获得异常。

3 个答案:

答案 0 :(得分:0)

这是因为你使用Wrapper类型的整数数组来保存图像。你应该使用int []而不是Integer []

答案 1 :(得分:0)

方法imageView.setImageResource(int id)需要一个整数作为Android项目中的资源。项目的res /文件夹将包含drawable,layouts和UI组件,如按钮,textviews等,可以通过各自的id引用。 通常,图像根据图像的大小和分辨率放置在各自的可绘制/文件夹中。您可以通过将图像导入项目的drawable /文件夹并通过自动生成的ID引用它们来解决您的问题。例如,假设您的可绘制文件夹中有一个名为“icon.png”的图像,您要将其设置为图像视图的图像资源。您所做的是,您使用R来引用此图片,方式是:R.drawable.iconR.drawable.icon会生成一个为res /文件夹中的“icon.png”文件自动生成的整数,您可以使用imageView.setImageResource(R.id.icon)将此图像设置为imageview的图像资源。这是使用int id引用图像和其他资源的标准方法,而不是将随机整数传递给imageView.setImageResource(int id)等方法。

答案 2 :(得分:0)

正确的解决方案我发现以上问题是使用最新版本的Android Studio在ubuntu中安装。我从1.5升级到Android Studio版本2.1.1,问题解决了。