2016-09-15 76 views
0

今天,我在新設備上測試了我的應用程序(請參閱下文),並在發佈時獲得了例外。我無法事件開始主要活動。安裝API 16Android:由於Firebase導致應用程序崩潰

沒有谷歌播放服務 - Genymotion三星Galaxy S2 - 安卓4.1.1:

設備

E/AndroidRuntime: FATAL EXCEPTION: main 
    java.lang.NoClassDefFoundError: com.google.firebase.g 
    at com.google.firebase.b.a(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:4560) 
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4190) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4132) 
    at android.app.ActivityThread.access$1300(ActivityThread.java:130) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4745) 
    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:786) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    at dalvik.system.NativeStart.main(Native Method) 

gradle這個編譯:

android { 
    compileSdkVersion 23 
    buildToolsVersion '23.0.2' 
    useLibrary 'org.apache.http.legacy' 

    defaultConfig { 
    applicationId "com.app" 
    minSdkVersion 10 
    targetSdkVersion 21 
    multiDexEnabled true 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 

    compile 'com.android.support:recyclerview-v7:24.2.0' 
    compile 'com.android.support:appcompat-v7:24.2.0' 
    compile 'com.google.android.gms:play-services:9.4.0' 
    compile 'com.mcxiaoke.volley:library:1.0.19' 
    compile 'com.github.chrisbanes.actionbarpulltorefresh:extra-abc:+' 
    compile 'com.github.castorflex.smoothprogressbar:library:1.1.0' 
    compile 'com.jeremyfeinstein.slidingmenu:library:[email protected]' 
    compile 'com.google.android.gms:play-services-ads:9.4.0' 
    compile 'com.google.android.gms:play-services-identity:8.4.0' 
    compile 'com.google.android.gms:play-services-gcm:9.4.0' 
    compile 'com.google.android.gms:play-services-auth:9.4.0' 
} 

是不是因爲缺少播放服務的崩潰?

注意:我大約一個月前實施了firebase,並且它在其他設備上工作。

+0

請您Genymotion三星更新播放服務! –

回答

2

雖然您的build.gradle文件中有multiDexEnabled true,但在依賴項中缺少compile 'com.android.support:multidex:1.0.1'。我懷疑Mulidex正在工作。查看Multidex configuration instructions,並確保您做的一切正確。

此外,包含compile 'com.google.android.gms:play-services:9.4.0'也不是好習慣。這爲您的應用增加了全部 Google Play和Firebase庫,增加了構建時間和APK文件的大小。用僅需要的庫替換對play-services:9.4.0的依賴關係。 Google Play庫的列表是provided here,Firebase庫是listed here

-1

您說的沒錯,Firebase需要Google Play服務。由於在發行公告在這裏提到的谷歌Play服務9.0: Google Play Services 9.0

火力地堡使用谷歌Play服務9.0

+0

我已經在安裝了Google Play服務的三星Galaxy S5設備(4.4.2)上進行了測試,並且它一直在崩潰。 –

+0

另外,S5上安裝的谷歌播放服務是9.4.52 –

1

嘗試添加該應用內置插件:「com.google.gms.google -services'到您的gradle構建文件的末尾

0

在應用程序代碼添加此行清單文件:

機器人:名字=「android.support.multidex.MultiDexApplication」

相關問題