2017-10-28 11 views
1

나는 안드로이드 5 및 5.1 (API 21 및 22)에서는 작동하지만 다른 안드로이드 버전 (6,7 및 8)에서는 잘 작동하지 않는 응용 프로그램을 가지고 있습니다. 내 Google Play 콘솔에서 이상한 버그가 발생합니다. 내가 응용 프로그램에서 라이브러리가 많이 있기 때문에 나는 을 사용하지만 문제가 있다고 생각하지 않는다.릴리스 응용 프로그램이 안드로이드 5 및 5.1에서 작동하지 않습니다

>  java.lang.RuntimeException: 
>  at android.app.ActivityThread.installProvider (ActivityThread.java:5558) 
>  at android.app.ActivityThread.installContentProviders (ActivityThread.java:5150) 
>  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:5090) 
>  at android.app.ActivityThread.access$1600 (ActivityThread.java:177) 
>  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1509) 
>  at android.os.Handler.dispatchMessage (Handler.java:102) 
>  at android.os.Looper.loop (Looper.java:145) 
>  at android.app.ActivityThread.main (ActivityThread.java:5938) 
>  at java.lang.reflect.Method.invoke (Native Method) 
>  at java.lang.reflect.Method.invoke (Method.java:372) 
>  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run 

(ZygoteInit.java:1400)

at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1195) 
Caused by: java.lang.ClassNotFoundException: 
    at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56) 
    at java.lang.ClassLoader.loadClass (ClassLoader.java:511) 
    at java.lang.ClassLoader.loadClass (ClassLoader.java:469) 
    at android.app.ActivityThread.installProvider (ActivityThread.java:5543) 

그리고 난 내 문제에 대한 해결책을 발견이 내 build.gradle

apply plugin: 'com.android.application' 
apply plugin: 'kotlin-android' 
apply plugin: 'io.fabric' 

android { 
    compileSdkVersion 26 
    buildToolsVersion '26.0.2' 

    defaultConfig { 
     applicationId "XXXXXXXXX" 
     minSdkVersion 21 
     targetSdkVersion 26 
     versionCode 7 
     versionName "2.01" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
     multiDexEnabled true 

     //for export the the room database scheme 
     javaCompileOptions { 
      annotationProcessorOptions { 
       arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] 
      } 
     } 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    compileOptions { 
     targetCompatibility 1.8 
     sourceCompatibility 1.8 
    } 

    externalNativeBuild { 
     ndkBuild { 
      path 'src/main/jni/Android.mk' 
     } 
    } 

    configurations { 
     compile.exclude group: 'org.jetbrains', module: 'annotations' 
    } 

    lintOptions { 
     disable 'MissingTranslation' 
    } 

} 

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

    implementation "com.android.support:appcompat-v7:${versions.support}" 
    implementation "com.android.support.constraint:constraint-layout:${versions.constraint}" 
    implementation "com.android.support:design:${versions.support}" 
    implementation "com.android.support:cardview-v7:${versions.support}" 

    implementation "com.github.bumptech.glide:glide:${versions.glide}" 
    annotationProcessor "com.github.bumptech.glide:compiler:${versions.glide}" 

    implementation "com.jakewharton:butterknife:${versions.butterKnife}" 
    annotationProcessor "com.jakewharton:butterknife-compiler:${versions.butterKnife}" 

    implementation "com.squareup.retrofit2:retrofit:${versions.retrofit}" 
    implementation "com.squareup.retrofit2:converter-gson:${versions.retrofit}" 
    implementation "com.squareup.retrofit2:adapter-rxjava2:${versions.rxjava2_adapter}" 

    implementation "android.arch.lifecycle:extensions:${versions.arch}" 
    implementation "android.arch.persistence.room:runtime:${versions.arch}" 
    implementation "android.arch.persistence.room:rxjava2:${versions.arch}" 
    annotationProcessor "android.arch.lifecycle:compiler:${versions.arch}" 
    annotationProcessor "android.arch.persistence.room:compiler:${versions.arch}" 

    implementation "io.reactivex.rxjava2:rxandroid:${versions.rxAndroid}" 
    implementation "io.reactivex.rxjava2:rxjava:${versions.rxJava}" 
    implementation "com.jakewharton.rxbinding2:rxbinding:${versions.rxBinding}" 

    implementation "com.jakewharton.timber:timber:${versions.timber}" 

    implementation "com.ahmedabdelmeged:networkito:${versions.networkito}" 

    implementation "com.google.dagger:dagger:${versions.dagger}" 
    implementation "com.google.dagger:dagger-android:${versions.dagger}" 
    implementation "com.google.dagger:dagger-android-support:${versions.dagger}" 
    annotationProcessor "com.google.dagger:dagger-android-processor:${versions.dagger}" 
    annotationProcessor "com.google.dagger:dagger-compiler:${versions.dagger}" 

    implementation "com.squareup.okhttp3:okhttp:${versions.okhttp3}" 
    implementation "com.squareup.okhttp3:logging-interceptor:${versions.okhttp3}" 

    implementation "com.github.siyamed:android-shape-imageview:${versions.image_shape}" 

    implementation "joda-time:joda-time:${versions.joda}" 

    implementation "org.greenrobot:eventbus:${versions.eventbus}" 

    implementation "com.google.android:flexbox:${versions.flexbox}" 

    implementation "com.github.chrisbanes:PhotoView:${versions.photoView}" 

    implementation "de.hdodenhof:circleimageview:${versions.circleImageView}" 

    implementation "com.github.JakeWharton:ViewPagerIndicator:${versions.ViewPagerIndicator}" 

    implementation("io.branch.sdk.android:library:${versions.branch}") { 
     exclude module: 'answers-shim' 
    } 

    implementation "com.google.firebase:firebase-messaging:${versions.firebase}" 
    implementation "com.google.firebase:firebase-ads:${versions.firebase}" 
    implementation "com.google.firebase:firebase-appindexing:${versions.firebase}" 

    implementation "com.pushwoosh:pushwoosh:${versions.pushwoosh}" 
    implementation "com.pushwoosh:pushwoosh-badge:${versions.pushwoosh}" 

    implementation "com.twitter.sdk.android:tweet-ui:${versions.twitter}" 

    implementation("com.crashlytics.sdk.android:crashlytics:${versions.crashlytics}") { 
     transitive = true 
    } 
    implementation("com.crashlytics.sdk.android:answers:${versions.answers}") { 
     transitive = true 
    } 

    implementation "com.vimeo.stag:stag-library:${versions.stag}" 
    annotationProcessor "com.vimeo.stag:stag-library-compiler:${versions.stag}" 

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" 

    implementation("com.mopub:mopub-sdk:${versions.mopub}") { 
     transitive = true 
     exclude module: 'libAvid-mopub' // To exclude AVID 
     exclude module: 'moat-mobile-app-kit' // To exclude Moat 
    } 

    implementation "com.facebook.android:audience-network-sdk:${versions.facebook}" 

    implementation "com.google.android.gms:play-services-analytics:${versions.play_service}" 

} 
apply plugin: 'com.google.gms.google-services' 
+0

에 내 build.gradle

에 다음을 추가

좋을 것이다. android.support : multidex : 1.0.1 '' 아래'dependencies'; ,'Manifest' 파일에서 : android.support.multidex.MultiDexApplication'; 와'MultiDex.install (this);'MyApplication' 액티비티에서? – Stanojkovic

+0

실제로 내가 필요로하지 않는 문서는 21 이하의 API를 사용하면 필요하다고 말합니다. 그리고 나는 이미 그것을하고 나에게 같은 문제를 준다. –

+0

당신의 응용 프로그램이'attachBaseContext'를 오버라이드 시켰습니까? – Stanojkovic

답변

0

후 긴 검색 이드는 그것을 이해하지 못한다. 아무도 설명하지 않으면 나에게 도움이된다. 나는 '당신이`컴파일 닷컴을 수행 안드로이드 설정

dexOptions { 
    preDexLibraries = false 
} 

에 그리고 build.gradle 그 자체

afterEvaluate { 
    tasks.matching { 
     it.name.startsWith('dex') 
    }.each { dx -> 
     if (dx.additionalParameters == null) { 
      dx.additionalParameters = ['--multi-dex'] 
     } else { 
      dx.additionalParameters += '--multi-dex' 
     } 
    } 
}