在使用Studio build从eclipse升级apk时,找不到类“ com.google.firebase.provider.FirebaseInitProvider”

时间:2018-08-17 09:49:48

标签: java android eclipse firebase

日志:

  

B   E / AndroidRuntime:致命例外:主进程:com.nova.app.check,PID:28293 java.lang.RuntimeException:无法获取提供程序com.google.firebase.provider.FirebaseInitProvider:java.lang.ClassNotFoundException:未提供在路径上找到类“ com.google.firebase.provider.FirebaseInitProvider”:DexPathList [[zip file“ /data/app/com.nova.app.check-2/base.apk"],nativeLibraryDirectories=[/data/app /com.nova.app.check-2/lib/x86、/system/lib、/vendor/lib]],位于android.app.ActivityThread.installProvider(ActivityThread.java:5814),位于android.app.ActivityThread.installContentProviders( android.app.ActivityThread.handleBindApplication(ActivityThread.java:5342)上的ActivityThread.java:5403)android.app.ActivityThread $ H.handleMessage(ActivityThread.java :)上android.app.ActivityThread.-wrap2(ActivityThread.java)上的ActivityThread.java:5403): 1528),位于java.android.app.ActivityThread.main(ActivityThread.java:6077),位于android.os.Looper.loop(Looper.java:154),位于android.os.Handler.dispatchMessage(Handler.java:102)。 lang.reflect.Method com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:865)上的.invoke(本机方法)com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)上的.invoke .lang.ClassNotFoundException:在路径:DexPathList [[zip文件“ /data/app/com.nova.app.check-2/base.apk”]上找不到类“ com.google.firebase.provider.FirebaseInitProvider” ,nativeLibraryDirectories = [/ data / app / com.nova.app.check-2 / lib / x86,/ system / lib,/ vendor / lib]]在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)在android.app.ActivityThread上的java.lang.ClassLoader.loadClass(ClassLoader.java:312)上的java.lang.ClassLoader.loadClass(ClassLoader.java:312)android.app.ActivityThread.installProvider(ActivityThread.java:5799) android.app.ActivityThread.handleBindApplication(ActivityThread.java:5342)的.installContentProviders(ActivityThread.java:5403)android.app.ActivityThread $ H.handleMessage(ActivityThread)的android.app.ActivityThread.-wrap2(ActivityThread.java) .java:152 8)在Java上的android.os.Looper.loop(Looper.java:154)在android.os.Handler.dispatchMessage(Handler.java:102)在android.app.ActivityThread.main(ActivityThread.java:6077)处。 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:865)上的lang.reflect.Method.invoke(本机方法),com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) )

===

我已在gradle中启用了multidex,我的应用程序类随MultiDexApplication扩展了...我也实现了对multidex库的支持。......

成功安装我的应用程序后,该应用程序开始崩溃。

我的build.gradle内容

apply plugin: 'com.android.application'


android {
aaptOptions {
    cruncherEnabled = false
}

lintOptions {
    abortOnError false
}

repositories {
    mavenCentral()
}

compileSdkVersion 27
buildToolsVersion '27.0.3'
//buildToolsVersion "27.0.1"

defaultConfig {
    applicationId "com.nova.app.check"
    minSdkVersion 19
    targetSdkVersion 24
    multiDexEnabled true
    versionCode 17
    versionName "2.0.1"
    vectorDrawables.useSupportLibrary = true
    sourceSets.main {
        jniLibs.srcDir 'src/main/libs'
        jni.srcDirs = []

    }
    buildTypes {
        debug {
            //minifyEnabled true
            //shrinkResources true
            //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }

        release {
            //minifyEnabled true
            //shrinkResources true
            //runProguard false
            //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
        staging {
            // Specifies a sorted list of fallback build types that the
            // plugin should try to use when a dependency does not include a
            // "staging" build type. You may specify as many fallbacks as you
            // like, and the plugin selects the first build type that's
            // available in the dependency.
            matchingFallbacks = ['debug', 'qa', 'release']
        }
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
        // exclude 'META-INF/json.tld'
    }

    useLibrary 'org.apache.http.legacy'


    dexOptions {
        javaMaxHeapSize "4g"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')

    implementation files('libs/GraphView-3.0.jar')
    implementation files('libs/jWebSocketClientAPI-1.0.jar')
    implementation files('libs/jWebSocketCommon-1.0.jar')
    implementation files('libs/jWebSocketJavaSEClient-1.0.jar')
    implementation files('libs/jackson-core-asl-1.9.3.jar')
    implementation files('libs/jackson-mapper-asl-1.9.3.jar')
    implementation files('libs/mail.jar')
    //implementation files('libs/json-taglib-0.4.1.jar')
    implementation files('libs/org.apache.commons.io.jar')
    implementation files('libs/org.apache.http.legacy.jar')
    implementation files('libs/zip4j_1.3.1.jar')
    implementation files('libs/ImageLoader.jar')
    //implementation files('libs/itsrts-pptviewer.jar')
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.android.volley:volley:1.0.0'
    //noinspection GradleCompatible

    implementation 'com.android.support:customtabs:27.1.1'
    implementation 'com.android.support:support-annotations:27.0.3'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:design:27.1.1'
    implementation project(path: ':androidTest')
    implementation 'com.android.support:appcompat-v7:27.1.1'
    compile 'com.android.support:cardview-v7:27.1.1'
    compile 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support:support-v4:27.1.1'
    //implementation 'com.google.android.gms:play-services:12.0.1'
    //for qr code scanning
    implementation 'com.google.android.gms:play-services-vision:12.0.1'
    //implementation 'me.dm7.barcodescanner:zxing:1.9'
    // migrate from eclipse
    implementation 'com.google.android.gms:play-services-gcm:12.0.1'
    implementation 'com.google.android.gms:play-services-location:12.0.1'
    implementation 'com.google.android.gms:play-services-places:12.0.1'

    implementation files('libs/gcm-server.jar')
    implementation files('libs/OneSignalSDK.jar')

    //socket connection lib for remoteview
    implementation 'com.github.nkzawa:socket.io-client:0.6.0'
    implementation "com.squareup.okhttp3:okhttp:3.7.0"
    // custom fab
    implementation 'com.github.clans:fab:1.6.4'

    // butter knife
    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

    //zoom imageView library
    implementation 'com.jsibbold:zoomage:1.1.0'

    //pdfviewer library
    implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'

    // custom images
    //implementation 'com.linsea:universalvideoview:1.1.0@aar'

    //qr code scan
    compile 'com.journeyapps:zxing-android-embedded:3.4.0'

    //testing lib
}
}
dependencies {
implementation 'com.android.support.constraint:constraint-layout:+'
implementation 'com.android.support:support-annotations:28.0.0-alpha3'
}
  

注意:我的基本应用程序是从Eclipse安装的,现在>我已经从studio生成的apk对其进行了升级。我的应用程序是启动程序,它是在启动阶段启动的。

1 个答案:

答案 0 :(得分:0)

先取消选中

Settings → Build, Execution, Deployment → Instant Run and uncheck Enable Instant Run

然后将此代码添加到您的build.gradle的模块中:defaultConfing中的app:

defaultConfig {
    ....
    ....
    multiDexEnabled = true
}

将此代码添加到您的build.gradle模块中:依赖项内的应用程序:

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

在应用程序中打开AndroidManifest.xml:

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

或者,如果您有Application类,则从MultiDexApplication扩展它,例如:

 public class MyApp extends MultiDexApplication {
    .....
   }

希望这对您有帮助