2017-03-19 58 views
5

如果我有即時運行激活,並且我通過運行或生成簽名的apk安裝應用程序Android Studio 2.3更新(和gradle更新)後,它工作正常。Android Studio 2.3無法與即時運行:調試apk與ClassNotFoundException崩潰

如果我手動安裝調試apk,它立即崩潰打開,ClassNotFoundException

注意:如果我刪除對文件提供程序的引用,找不到的類成爲主要活動。這個問題是在調試apk中生成Build - > Output - > apk文件夾。如果你直接運行應用程序,它總是運行良好。

沒有即時運行沒有崩潰。對於以前版本的Android Studio,也沒有崩潰。

java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.vfirst.ifbagro-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.vfirst.ifbagro-1, /vendor/lib, /system/lib]] 
at android.app.ActivityThread.installProvider(ActivityThread.java:4993) 
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4596) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4536) 
at android.app.ActivityThread.access$1300(ActivityThread.java:149) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5214) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:525) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.vfirst.ifbagro-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.vfirst.ifbagro-1, /vendor/lib, /system/lib]] 
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
at android.app.ActivityThread.installProvider(ActivityThread.java:4978) 
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4596) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4536) 
at android.app.ActivityThread.access$1300(ActivityThread.java:149) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5214) 
at java.lang.reflect.Method.invokeNative(Native Method) 
+0

有沒有[這](http://stackoverflow.com/questions/37312103/unable-to-get -provider-com-google-firebase-provider-firebaseinitprovider)解決了你的問題? – azizbekian

+0

沒有.......我嘗試了所有可用的解決方案。這個問題是專門針對上週出現的Android studio 2.3更新的。請再次閱讀問題,即使我刪除了firebase依賴項,它也會顯示MainActivity類未找到異常甚至只有當我分享和運行調試apk時,所以沒有問題,而從Android的工作室在設備上運行應用程序時,它只是當你從生成apk - >輸出 - > apk文件夾中安裝它。 –

+1

是的。這是真的!似乎即時運行已啓用,生成的app-debug.apk不完整。然而,禁用即時運行,會產生一個更大的完整的apk文件,安裝和運行不會導致這樣的問題。 –

回答

-2

至於我,我試過如下:嘗試檢查,如果你的手機自動啓動管理器允許您的應用程序自動啓動。通過允許您的應用程序自動啓動,我認爲這將有助於解決即時運行問題。希望這會有所幫助。

0

我有同樣的錯誤,我用MultiDex解決了它 add build.gradle multiDexEnabled「true」。

android { 
     defaultConfig { 
      ... 
      minSdkVersion 15 
      targetSdkVersion 25 
      multiDexEnabled true 
     } 
     ... 
    } 

    dependencies { 
     compile 'com.android.support:multidex:1.0.1' 

此鏈接描述:https://developer.android.com/studio/build/multidex.html

+0

這與即時運行有關,因爲它在沒有即時運行的情況下運行,但不能即時運行。 –

0

試試這個:

android { 
     defaultConfig { 
      minSdkVersion 14 
      targetSdkVersion 25 
      multiDexEnabled true 
     } 
    } 

    dependencies { 
     compile 'com.android.support:multidex:1.0.1' 

這個代碼到你的清單:

<application 
     ... 
     android:name="android.support.multidex.MultiDexApplication"> 
     ... 
    </application> 

如果使用自定義應用程序類,使用此代碼:

public class YouApplication extends Application { 

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

} 

,然後清單:

<application 
     ... 
     android:name="YOUR_PACKAGE.YouApplication"> 
     ... 
    </application> 

我希望幫助你我的朋友

+0

這與即時運行有關,因爲它在沒有即時運行的情況下工作,但不能即時運行。 –

+0

您已將此代碼添加到您的代碼中,並且當生成APK在真實設備中沒有問題時,即時運行僅針對虛擬設備的錯誤。將上面的代碼添加到您的項目中並禁用即時運行adn build生成 –

+0

我已經很長時間檢查了這個解決方案,回到了很多問題上。按照我編寫的步驟,此問題已在android問題跟蹤器中報告。我可以理解您提供的解決方案堆棧跟蹤的基礎。但實際問題是在我的問題不在堆棧跟蹤。 –

相關問題