2017-06-17 95 views
0

AndroidRuntime:路徑上沒有找到類 「com.google.firebase.provider.FirebaseInitProvider」 致命異常:主要 過程:com.info.app, PID:24503 java.lang.RuntimeException:無法獲取提供者com.google.firebase.provider.FirebaseInitProvider:java.lang.ClassNotFoundException:在路徑中未找到類「com.google.firebase.provider.FirebaseInitProvider」:DexPathList [[zip文件「/data/app/com.info.app-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.info.app-1,/ vendor/lib,/ system/lib] ] at android.app.ActivityThread.installProvider(ActivityThread.java:5236) at android.app.Activ ityThread.installContentProviders(ActivityThread.java:4827) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4710) at android.app.ActivityThread.access $ 1600(ActivityThread.java:174) at android.app.ActivityThread $ android.app.ActivityThread上的android.os.Looper.loop(Looper.java:146) .main(ActivityThread.java:5593) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at co m.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1283) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) at dalvik.system.NativeStart.main(本地方法) 引起:java.lang.ClassNotFoundException:在路徑中未找到類「com.google.firebase.provider.FirebaseInitProvider」:DexPathList [[zip file] /data/app/com.info.app-1 .apk「],nativeLibraryDirectories = [/ data/app-lib/com.info.app-1,/ vendor/lib,/ system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:67) at java.lang.ClassLoader.loadClass(ClassLoader.java:497) at java.lang.ClassLoader.loadClass(ClassLoader.java:457) at androi d.app.ActivityThread.installProvider(ActivityThread.java:5221) at android.app.ActivityThread.installContentProviders(ActivityThread.java:4827) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4710) at android。 app.ActivityThread.access $ 1600(ActivityThread.java:174) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1367) at android.os.Handler.dispatchMessage(Handler.java:102) at android .os.Looper.loop(Looper.java:146) at android.app.ActivityThread.main(ActivityThread.java:5593) at java.lang.reflect.Method.invokeNative(Native Method) 在java.lang.reflect.Method.invoke(Method.java:515) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1283) 在com.android.internal.os。 ZygoteInit.main(ZygoteInit.java:1099) 在dalvik.system.NativeStart.main(本機方法)如何解決的是Android 4.4.2錯誤ClassNotFoundException的:DexPathList

的build.gradle

buildscript { 
    repositories { 
     maven { url 'https://maven.fabric.io/public' } 
    } 

    dependencies { 
     classpath 'io.fabric.tools:gradle:1.+' 
    } 
} 
apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 

repositories { 
    mavenCentral() 
    maven() { 
     url "https://oss.sonatype.org/content/repositories/snapshots" 
    } 
    maven { url 'https://maven.fabric.io/public' } 

} 

android { 
    dexOptions { 
     javaMaxHeapSize "4g" 
    } 

    compileSdkVersion 25 
    buildToolsVersion '25.0.1' 
    defaultConfig { 
     // Enabling multidex support. 
     multiDexEnabled true 
     applicationId "com.info.app" 
     minSdkVersion 17 
     targetSdkVersion 25 
     versionCode 16 
     versionName "1.0.12" 
     testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner' 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      debuggable false 
      signingConfig signingConfigs.config 
     } 
     debug { 
      debuggable true 
      signingConfig signingConfigs.config 
     } 
    } 

    packagingOptions { 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/NOTICE' 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile project(':CustomBrowser-release') 
    compile project(':PayU-release') 
    compile project(':sdkui') 

    compile('com.github.worker8:tourguide:[email protected]') { 
     transitive = true 
    } 
    compile('com.twitter.sdk.android:twitter:[email protected]') { 
     transitive = true; 
    } 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 
    compile 'com.intuit.sdp:sdp-android:1.0.4' 
    compile 'com.android.support:appcompat-v7:25.0.1' 
    compile 'com.android.support:cardview-v7:25.0.1' 
    compile 'com.android.support:design:25.0.1' 
    compile 'com.android.support:multidex:1.0.1' 
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' 
    compile 'com.soundcloud.android:android-crop:[email protected]' 
    compile 'com.mcxiaoke.volley:library:1.0.19' 
    compile 'com.google.code.gson:gson:2.2.4' 
    compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1' 
    compile 'de.hdodenhof:circleimageview:2.0.0' 
    compile 'com.google.android.gms:play-services:10.2.4' 
    compile 'com.facebook.android:facebook-android-sdk:4.15.0' 
    compile 'com.google.firebase:firebase-messaging:10.2.4' 
    compile 'com.nononsenseapps:filepicker:3.1.0' 
    compile 'com.ufreedom.uikit:FloatingViewLib:1.0.2' 
    compile 'com.github.paolorotolo:appintro:4.1.0' 
    compile 'com.google.firebase:firebase-crash:10.2.4' 
    compile 'com.google.firebase:firebase-appindexing:10.2.4' 
    compile 'com.stripe:stripe-android:3.1.1' 
    compile 'com.braintreepayments:card-form:3.0.5' 
    compile 'com.daimajia.numberprogressbar:library:[email protected]' 
    testCompile 'junit:junit:4.12' 
} 
apply plugin: 'com.google.gms.google-services' 

所有MyApplication。java的

public class MyApplication extends Application { 

     @Override 
     public void onCreate() { 
      MultiDex.install(getApplicationContext()); 
      super.onCreate(); 

AndroidManifest.xml中

<application 
     android:name=".MyApplication" 
     android:allowBackup="true" 
     android:hardwareAccelerated="false" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:largeHeap="true" 
     android:supportsRtl="true" 
     android:theme="@style/MyMaterialTheme"> 

唯一的應用程序停止不幸的Android 4.4以下 最新的日誌文件

06-17 16:50:36.955 586-586/? I/SELinux: Function: selinux_android_load_priority [0], There is no sepolicy file. 

06-17 16:50:37.005 586-586/? I/SELinux: Function: selinux_android_load_priority , spota verifySig and checkHash pass. priority version is VE=SEPF_GT-I9192_4.4.2_0055 


06-17 16:50:37.005 586-586/? I/SELinux: selinux_android_seapp_context_reload: seapp_contexts file is loaded from /data/security/spota/seapp_contexts 
06-17 16:50:37.005 586-586/? E/dalvikvm: >>>>> Normal User 
06-17 16:50:37.005 586-586/? E/dalvikvm: >>>>> com.info.app [ userId:0 | appId:10286 ] 
06-17 16:50:37.005 586-586/? D/dalvikvm: Late-enabling CheckJNI 
06-17 16:50:37.415 586-586/com.info.app D/AndroidRuntime: Shutting down VM 
06-17 16:50:37.415 586-586/com.info.app W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41ea2da0) 
06-17 16:50:37.415 586-586/com.info.app E/AndroidRuntime: FATAL EXCEPTION: main 
                   Process: com.info.app, PID: 586 
                   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.info.app-3.apk"],nativeLibraryDirectories=[/data/app-lib/com.info.app-3, /vendor/lib, /system/lib]] 
                    at android.app.ActivityThread.installProvider(ActivityThread.java:5236) 
                    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4827) 
                    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4710) 
                    at android.app.ActivityThread.access$1600(ActivityThread.java:174) 
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1367) 
                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                    at android.os.Looper.loop(Looper.java:146) 
                    at android.app.ActivityThread.main(ActivityThread.java:5593) 
                    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:1283) 
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
                    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.info.app-3.apk"],nativeLibraryDirectories=[/data/app-lib/com.info.app-3, /vendor/lib, /system/lib]] 
                    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:67) 
                    at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 
                    at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 
                    at android.app.ActivityThread.installProvider(ActivityThread.java:5221) 
                    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4827)  
                    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4710)  
                    at android.app.ActivityThread.access$1600(ActivityThread.java:174)  
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1367)  
                    at android.os.Handler.dispatchMessage(Handler.java:102)  
                    at android.os.Looper.loop(Looper.java:146)  
                    at android.app.ActivityThread.main(ActivityThread.java:5593)  
                    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:1283)  
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)  
                    at dalvik.system.NativeStart.main(Native Method)  
+0

您的應用需要multidex支持。只是增加支持,它會很好 –

+0

@BabulPatel我添加仍然出現錯誤。 –

+0

您可以通過將'com.google.android.gms:play-services:10.2.4'的依賴替換爲您需要的特定Google Play服務API來消除對Multidex的需求。請參閱此答案:https://stackoverflow.com/a/40635422/4815718 –

回答

8

注意:如果您的項目配置爲multidex與minSdkVersion 20或更低,並部署到運行A的目標設備ndroid 4.4(API等級20)或更低,Android Studio會禁用即時運行。

當之前的版本的是Android 5.0(API級別21)運行,使用multidex是不夠的,解決的linearalloc限制(issue 78035).此限制在的Android 4.0(API級別14)增加,但並沒有完全解決它。在低於Android 4.0的版本中,您可能會在達到DEX索引限制之前達到linearalloc限制。因此,如果您的API級別低於14,請在這些版本的平臺上進行徹底測試,因爲您的應用在啓動時或加載了特定類別的組時可能會遇到問題。 Code shrinking可以減少或可能消除這些問題。

你有太多的方法。對於dex只能有65536個方法。

因此,使multidex如下:

android {  
defaultConfig { 
    // Enabling multidex support. 
    multiDexEnabled true 
} 
} 
dependencies { 
compile 'com.android.support:multidex:1.0.0' 
} 

創建一類像這樣

public class Multi_Dex extends Application { 
@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 
} 

現在在manifiest文件中添加此

<application 
    android:name=".Multi_Dex" 
    android:allowBackup="true" 
    android:icon="@drawable/logo" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 

解決這個公關oblem S,這樣的鏈接描述:developer.android.com/studio/build/multidex

或試試這個我的朋友奇巧或更低版本

android { 
defaultConfig { 
    ... 
    multiDexEnabled true 
} 
productFlavors { 
    dev { 
     // Enable pre-dexing to produce an APK that can be tested on 
     // Android 5.0+ without the time-consuming DEX build processes. 
     minSdkVersion 21 
    } 
    prod { 
     // The actual minSdkVersion for the production version. 
     minSdkVersion 14 
    } 
} 
buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 
              'proguard-rules.pro' 
    } 
} 
} 
dependencies { 
compile 'com.android.support:multidex:1.0.1' 
} 
+0

我已經添加了此代碼。但仍然得到這個錯誤 –

+0

@AMahaRaja比請粘貼您的代碼multidex –

+0

@AMahaRaja添加此depedencie在您的gradle文件編譯'com.android.support:multidex:1.0.0' –

0

內容添加到的build.gradle,不需要multidex,而你並不需要multidex功能

dexOptions { 
    preDexLibraries = false 
}