ВМ есть поддержка мультидекса, библиотека поддержки MultiDex отключена. вопрос
Я уже перепробовал все решения, которые есть в интернете, но любое из них работает, это мой вариант.
android {
compileSdkVersion 25
buildToolsVersion '25.0.0'
defaultConfig {
applicationId "com.rocketjourney"
minSdkVersion 21
targetSdkVersion 24
versionCode 68
versionName "4.41"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "com.rocketjourney.helpers.CustomTestRunner"
}
configurations.all {
resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
resolutionStrategy.force 'com.squareup.okio:okio:1.13.0'
resolutionStrategy.force 'com.squareup.okhttp3:okhttp:3.8.0'
}
dexOptions {
javaMaxHeapSize "4g"
jumboMode = true
}`
repositories {
mavenCentral()
maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local' }
maven { url "https://jitpack.io" }
flatDir { dirs 'libs' }
flatDir { dirs '../aars' }
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') { transitive = true; }
etc...
}`
мой манифест выглядит так:
<application
android:name="com.rocketjourney.RJApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
В моем RJApplication.class
У меня есть этот код:
public class RJApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
}
Но моя ошибка сейчас заключается в следующем:
11-08 11: 54: 36,494 5743-5743/? E/AndroidRuntime: ФАКТИЧЕСКОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.rocketjourney, PID: 5743 java.lang.NoClassDefFoundError: Ошибка разрешения: Lio/fabric/sdk/android/services/common/FirebaseInfo; в com.crashlytics.android.CrashlyticsInitProvider.onCreate(CrashlyticsInitProvider.java:22) в android.content.ContentProvider.attachInfo(ContentProvider.java:1696) в android.content.ContentProvider.attachInfo и ContentPide.jav71: Content71 app.ActivityThread.installProvider(ActivityThread.java:4999) в android.app.ActivityThread.installContentProviders(ActivityThread.java:4594) в android.app.ActivityThread.handleBindApplication(ActivityThread.java:4534) в android.app.ActivityThread.access$1500(ActivityThread.java:151) на android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) на android.os.Handler.dispatchMessage(Handler.java:102) на android.os.Looper.loop(Looper.java:135) на android.app.ActivityThread.main(ActivityThread.java:5254) на java.lang.reflect.Method.invoke(собственный метод) на java.lang.reflect.Method.invoke(Method.java:372) в com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Причина: java.lang.ClassNotFoundException: не найден класс "io.fabric.sdk.android.services.common.FirebaseInfo" по пути: DexPathList[[zip-файл "/data/app/com.rocketjourney-2/base.apk"],nativeLibraryDirectories=[/data/app/com.rocketjourney-2/lib/x86, /vendor/lib, /system/lib]] в dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) в java.lang.ClassLoader.loadClass(ClassLoader.java:511) в java.lang.ClassLoader.loadClass(ClassLoader.java:469) в com.crashlytics.android.CrashlyticsInitProvider.onCreate (Crashlyitejjj): 22) на android.content.ContentProvider.attachInfo(ContentProvider.java:1696) на android.content.ContentProvider.attachInfo(ContentProvider.java:1671) на android.app.ActivityThread.installProvider(ActivityThread.java:4999) на андроиде. app.ActivityThread.installContentProviders (ActivityThread.java:4594) в android.app.ActivityThread.handleBindApplication(ActivityThread.java:4534) в android.app.ActivityThread.access $ 1500 (действие ivityThread.java:151) в android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) в android.os.Handler.dispatchMessage(Handler.java:102) в android.os.Looper.loop(Looper.java:135) на android.app.ActivityThread.main(ActivityThread.java:5254) на java.lang.reflect.Method.invoke(собственный метод) на java.lang.reflect.Method.invoke(Method.java:372) на com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:698) Подавлено: java.lang.ClassNotFoundException: io.f.sdk.android.services.common.FirebaseInfo на java.lang.Class.classForName(собственный метод) на java.lang.BootClassLoader.findClass(ClassLoader.java:781) на java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... еще 16 причин: java.lang.NoClassDefFoundError: класс не найден с помощью загрузчика загрузочного класса; нет стека
Надеюсь, вы, ребята, можете мне помочь, я буду очень благодарен!
1 ответ
Вам не нужно добавлять поддержку multidex, если ваш minSdkVersion
21
Из документации:
Поддержка Multidex для Android 5.0 и выше
Android 5.0 (уровень API 21) и выше использует среду выполнения, называемую ART, которая изначально поддерживает загрузку нескольких файлов DEX из файлов APK. ART выполняет предварительную компиляцию во время установки приложения, которая сканирует файлы classesN.dex и компилирует их в один файл.oat для выполнения устройством Android. Поэтому, если ваш minSdkVersion 21 или выше, вам не нужна библиотека поддержки multidex.
Итак, вам нужно удалить compile 'com.android.support:multidex:1.0.1'
из вашего билда. Затем вам нужно расширить RJApplication с помощью Application
, Также удалите MultiDex.install(this);
от твоего attachBaseContext()
,
все, что вам нужно сделать, это установить multiDexEnabled в true, добавив multiDexEnabled true
, Пожалуйста, обратитесь к разделу Настройка вашего приложения для multidex