为什么我的Android应用程序在设备4.4.3中打开后立即崩溃,但在设备5.0或更高版本中没有崩溃 [英] Why My android app crashes as soon as I open it in device 4.4.3 but not in device 5.0 or above

查看:327
本文介绍了为什么我的Android应用程序在设备4.4.3中打开后立即崩溃,但在设备5.0或更高版本中没有崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用facebook sdk登录到facebook,还使用google map来获取用户当前位置。它在android 5.o或更高版本中运行良好,但在android 4.4.3中崩溃。我使用了以下配置。

I have used facebook sdk for log in with facebook and also google map for user current position. It run well in android 5.o or above but crashes in android 4.4.3. I have used following configuration.

 android {
             compileSdkVersion 24
             buildToolsVersion "24.0.0"

             defaultConfig {
                 applicationId "com.example.nuevo.getsocial"
                 minSdkVersion 15
                 targetSdkVersion 24
                 versionCode 1
                 versionName "1.0"
                 multiDexEnabled true
             }
             buildTypes {
                 release {
                     minifyEnabled false
                     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                 }
             }
             dexOptions{
                 javaMaxHeapSize "4g"
             }
         }
         repositories {
             mavenCentral()
         }

         dependencies {
             compile fileTree(dir: 'libs', include: ['*.jar'])
             testCompile 'junit:junit:4.12'
             compile project(path: ':volley')
             compile 'com.android.support:appcompat-v7:24.2.0'
             compile 'com.facebook.android:facebook-android-sdk:4.7.0'
             compile 'com.squareup.picasso:picasso:`enter code here`2.4.0'
             compile 'com.google.android.gms:play-services:9.4.0'
             compile 'com.android.support:design:24.2.0'
             compile 'com.google.android.gms:play-services-ads:9.4.0'
             compile 'com.google.android.gms:play-services-auth:9.4.0'
             compile 'com.google.android.gms:play-services-gcm:9.4.0'
         }

Logcat如下


446 / com.example.nuevo.getsocial E / dalvikvm :找不到方法
com.google.fir引用的类
'com.google.firebase.FirebaseOptions' ebase.FirebaseApp。 08-29 02:41:35.041
1446-1446 / com.example.nuevo.getsocial E / dalvikvm:找不到方法中引用的类
'com.google.firebase.FirebaseApp $ zzb'
com.google.firebase.FirebaseApp.zzcm 08-29 02:41:35.045
1446-1446 / com.example.nuevo.getsocial E / dalvikvm:找不到类
'com .google.firebase.FirebaseApiNotAvailableException,从方法com.google.firebase.FirebaseApp.getToken 08-29中引用了

02:41:35.049 1446-1446 / com.example.nuevo.getsocial E / dalvikvm :
找不到类 com.google.firebase.FirebaseApp $ zza,该类是从
方法com.google.firebase.FirebaseApp.zza引用的08-29 02:41:35.081
1446 -1446 / com.example.nuevo.getsocial E / AndroidRuntime:致命
例外:main进程:com.example.nuevo.getsocial,PID:1446
java.lang.NoClassDefFoundError:com.google.firebase
com.google.firebase.FirebaseApp.zzek的.FirebaseOptions(
com.google.firebase.provider.FirebaseInitPr的(未知来源) ovider.onCreate(Unknown
Source)at
android.content.ContentProvider.attachInfo(ContentProvider.java:1591)
at
android.content.ContentProvider.attachInfo(ContentProvider.java :1562)

处com.google.firebase.provider.FirebaseInitProvider.attachInfo(未知
源)在
处android.app.ActivityThread.installProvider(ActivityThread.java:4774)
at
android.app.ActivityThread.installContentProviders(ActivityThread.java:4369)
at
android.app.ActivityThread.handleBindApplication(ActivityThread.java:4309)

的android.app.ActivityThread.access $ 1500(ActivityThread.java:135)处在android.os.Handler.dispatchMessage(在android.app.ActivityThread.H:handleMessage(ActivityThread.java:1256)

处的Handler.java:102)android.os.Looper.loop(Looper.java:136)处
android.app.ActivityThread.main(ActivityThread.java:5001)处
Java .lang.reflect.Method.invokeNative(本机方法)at
java.lang.reflect.Met hod.invoke(Method.java:515)在
com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:785)
在com.android.internal.os.ZygoteInit。 main(ZygoteInit.java:601)at
dalvik.system.NativeStart.main(Native Method)

446/com.example.nuevo.getsocial E/dalvikvm: Could not find class 'com.google.firebase.FirebaseOptions', referenced from method com.google.firebase.FirebaseApp. 08-29 02:41:35.041 1446-1446/com.example.nuevo.getsocial E/dalvikvm: Could not find class 'com.google.firebase.FirebaseApp$zzb', referenced from method com.google.firebase.FirebaseApp.zzcm 08-29 02:41:35.045 1446-1446/com.example.nuevo.getsocial E/dalvikvm: Could not find class 'com.google.firebase.FirebaseApiNotAvailableException', referenced from method com.google.firebase.FirebaseApp.getToken 08-29 02:41:35.049 1446-1446/com.example.nuevo.getsocial E/dalvikvm: Could not find class 'com.google.firebase.FirebaseApp$zza', referenced from method com.google.firebase.FirebaseApp.zza 08-29 02:41:35.081 1446-1446/com.example.nuevo.getsocial E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.nuevo.getsocial, PID: 1446 java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions at com.google.firebase.FirebaseApp.zzek(Unknown Source) at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) at android.content.ContentProvider.attachInfo(ContentProvider.java:1591) at android.content.ContentProvider.attachInfo(ContentProvider.java:1562) at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) at android.app.ActivityThread.installProvider(ActivityThread.java:4774) at android.app.ActivityThread.installContentProviders(ActivityThread.java:4369) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4309) at android.app.ActivityThread.access$1500(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5001) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method)


推荐答案

根据Android Studio用户指南: Android 5.0之前的Multidex支持

According to Android Studio User Guide:Multidex support prior to Android 5.0


Android 5.0(API级别21)之前的平台版本使用Dalvik运行时执行应用程序代码。默认情况下,Dalvik将应用程序限制为每个APK仅包含一个classes.dex字节码文件。为了解决此限制,您可以使用 multidex支持库,它成为您应用程序主DEX文件的一部分,然后管理对其他DEX文件及其包含的代码的访问。

Versions of the platform prior to Android 5.0 (API level 21) use the Dalvik runtime for executing app code. By default, Dalvik limits apps to a single classes.dex bytecode file per APK. In order to get around this limitation, you can use the multidex support library, which becomes part of the primary DEX file of your app and then manages access to the additional DEX files and the code they contain.

在您的情况下,如果您支持旧版本的Android,则需要在gradle依赖项中包含 com.android.support:multidex:1.0.0

In your case, if you're supporting old version of Android, you need to include com.android.support:multidex:1.0.0 in your gradle dependency.

这篇关于为什么我的Android应用程序在设备4.4.3中打开后立即崩溃,但在设备5.0或更高版本中没有崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆