Мультидекс на Asus 5.1

У меня проблема с использованием мультидекса. Работает нормально, но только на ASUS Zenphone MAX with 5.1 Androidпри запуске приложения произошла ошибка:

05-17 16: 37: 11.624 11229-11229 / ru.techmas.neeosocial E / AndroidRuntime: FATAL EXCEPTION: main Процесс: ru.techmas.neeosocial, PID: 11229 java.lang.NoClassDefFoundError: Ошибка разрешения: Lrx/subject /PublishSubject; на ru.techmas.neeosocial.utils.RxPush.(RxPush.java:18) на ru.techmas.neeosocial.dagger.modules.AppModule.(AppModule.java:46) на ru.techmas.neeosocial.App.setupDagger2(приложение.java:58) на ru.techmas.neeosocial.App.onCreate(App.java:34) на android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1011) на android.app.ActivityThread.handleBindApplication(ActivityThread.java:4559) на android.app.ActivityThread.access$1500(ActivityThread.java:151) на android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346) на android.os.Handler.dispatchMessage(Handler.java:102) на android.os.Looper.loop(Looper.java:135) на android.app.ActivityThread.main(ActivityThread.java:5289) на java.lang.reflect.Method.invoke(собственный метод) на java.lang.reflect.Method.invoke(Method.java:372) в com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Вызвано: java.lang.ClassNotFoundException: не нашел классы s "rx.subjects.PublishSubject" по пути: DexPathList[[ZIP-файл "/data/app/ru.techmas.neeosocial-1/base.apk", ZIP-файл "/data/app/ru.techmas.neeosocial-1/split_lib_dependencies_apk.apk ", ZIP-файл" /data/app/ru.techmas.neeosocial-1/split_lib_slice_0_apk.apk ", ZIP-файл" /data/app/ru.techmas.neeosocial-1/split_lib_slapk "_ "/data/app/ru.techmas.neeosocial-1/split_lib_slice_2_apk.apk", zip-файл "/data/app/ru.techmas.neeosocial-1/split_lib_slice_3_apk.apk", zip-файл "/ data / app / ru. techmas.neeosocial-1 / split_lib_slice_4_apk.apk ", ZIP-файл" /data/app/ru.techmas.neeosocial-1/split_lib_slice_5_apk.apk ", ZIP-файл" /data/app/ru.techmas.neeosocial_pl_. apk ", zip-файл" /data/app/ru.techmas.neeosocial-1/split_lib_slice_7_apk.apk ", zip-файл" /data/app/ru.techmas.neeosocial-1/split_lib_slice_8_apk.apk ", zip-файл"/data/app/ru.techmas.neeosocial-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/ru.techmas.neeosocial-1/lib/arm64, /vendor/lib64, /system/lib64]] в dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) в java.lang.ClassLoader.loadClass(ClassLoader.java:511) в java.lang.ClassLoader.loadClass(ClassLoader.java:469).techmas.neeosocial.utils.RxPush. (RxPush.java:18) в ru.techmas.neeosocial.dagger.modules.AppModule.(AppModule.java:46) в ru.techmas.neeosocial.App.setupDagger2(App.java): 58) на ru.techmas.neeosocial.App.onCreate(App.java:34) на android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1011) на android.app.ActivityThread.handleBindApplication (ActivityThread.java:4559) на android.app.ActivityThread.access$1500(ActivityThread.java:151) на android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346) на android.os.Handler.dispatchMessage(Handler.java:102) на android.os.Looper.loop(Looper.java:135) на android.app.ActivityThread.main(ActivityThread.java:5289) на java.lang.reflect.Method.invoke(собственный метод) на java.lang.reflect.Method.invoke(Method.java:372) в com.androi d.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:899) в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Подавлено: java.lang.ClassNotFoundException: rx.subjectPject в java.lang.Class.classForName(собственный метод) в java.lang.BootClassLoader.findClass(ClassLoader.java:781) в java.lang.BootClassLoader.loadClass(ClassLoader.java:841) в java.lang.ClassLoader.loadC (ClassLoader.java:504) ... еще 16 причин: java.lang.NoClassDefFoundError: Класс не найден с помощью загрузчика загрузочного класса; стек недоступен 05-17 16:42:11.945 11229-11229/ru.techmas.neeosocial I/ Процесс: отправка сигнала. PID: 11229 SIG: 9 Причина: java.lang.NoClassDefFoundError: Класс не найден с помощью загрузчика загрузочного класса; нет стека

Это происходит, когда я создаю AppModule (Dagger2 DI), строка rxPush (если поменять местами с restApi, это происходит при создании restApi.

AppModule:

public AppModule(App app) {
    this.app = app;
    preferenceHelper = new PreferenceHelper(PreferenceManager.getDefaultSharedPreferences(app));
    dataChecker = new DataChecker();
    geoHelper = new GeoHelper();
    animationHelper = new AnimationHelper(app);
    user = new UserDTO();
    friendPerson = new PersonDTO();
    rxPush = new RxPush();
    restApi = new RestApi(preferenceHelper, app);
}

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 {
    maven { url 'https://maven.fabric.io/public' }
}

apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'realm-android'


def getStore = { ->
    def result = project.hasProperty('storeFile') ? storeFile : "null"
    return result
}

def getStorePassword = { ->
    def result = project.hasProperty('storePassword') ? storePassword : ""
    return result
}

def getKeyAlias = { ->
    def result = project.hasProperty('keyAlias') ? keyAlias : ""
    return result
}

def getKeyPassword = { ->
    def result = project.hasProperty('keyPassword') ? keyPassword : ""
    return result
}


android {

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.outputFile = new File(
                    output.outputFile.parent,
                    output.outputFile.name.replace("app", "${variant.applicationId}-${variant.versionName}"))
        }
    }

    compileSdkVersion = 25
    buildToolsVersion = "25.0.2"
    defaultConfig {
        applicationId "ru.techmas.neeosocial"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 7
        versionName "0.5.3"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    signingConfigs {
        release {
            storeFile file(getStore())
            storePassword getStorePassword()
            keyAlias getKeyAlias()
            keyPassword getKeyPassword()
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
}

dependencies {
    compile 'com.android.support:multidex:1.0.0'
    compile project(':webrtc')
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
        transitive = true;
    }
    compile 'com.arello-mobile:moxy:1.4.5'
    compile 'com.arello-mobile:moxy-app-compat:1.4.5'
    compile 'com.arello-mobile:moxy-android:1.4.5'
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile 'com.squareup.okhttp3:okhttp:3.5.0'
    compile 'com.squareup.okhttp3:logging-interceptor:3.5.0'
    compile 'io.reactivex:rxjava:1.1.5'
    compile 'io.reactivex:rxandroid:1.0.1'
    compile 'com.android.support:design:25.1.0'
    compile 'com.android.support:recyclerview-v7:25.1.0'
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile 'com.android.support:support-v4:25.1.0'
    compile 'com.android.support:cardview-v7:25.1.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.theartofdev.edmodo:android-image-cropper:2.3.1'
    compile 'de.hdodenhof:circleimageview:1.3.0'
    compile 'com.google.dagger:dagger:2.5'
    compile 'org.greenrobot:eventbus:3.0.0'
    compile 'com.github.christophesmet:android_maskable_layout:d51245736a'
    compile 'jp.wasabeef:blurry:2.1.0'
    compile 'com.google.android.gms:play-services-maps:9.0.1'
    compile 'com.google.android.gms:play-services-location:9.0.1'
    compile 'ru.tinkoff.decoro:decoro:1.3.2'
    compile 'com.google.firebase:firebase-messaging:9.0.1'
    testCompile 'junit:junit:4.12'
    apt 'com.google.dagger:dagger-compiler:2.5'
    provided 'com.arello-mobile:moxy-compiler:1.4.5'
    provided 'javax.annotation:jsr250-api:1.0'
}

apply plugin: 'com.google.gms.google-services'

Приложение (расширяет WebRtcApp расширяет MultiDexApplication):

public class App extends WebRtcApp {

    private static AppComponent appComponent;


    //@formatter:off
    @Inject DataChecker dataChecker;
    //@formatter:on

    @Override
    public void onCreate() {
        super.onCreate();
        setupDagger2();
        setupDataChecker();
        setupFabric();
        setupRealm();
    }

    private void setupRealm() {
        Realm.init(this);
        RealmConfiguration config = new RealmConfiguration.Builder()
                .schemaVersion(Const.RealmScheme.VERSION) // Must be bumped when the schema changes
                .deleteRealmIfMigrationNeeded()
                .build();
        Realm.setDefaultConfiguration(config);
    }

    private void setupDataChecker() {
        dataChecker.setContext(this);
    }

    private void setupFabric() {
        Fabric.with(this, new Crashlytics());
    }

    private void setupDagger2() {
        appComponent = DaggerAppComponent.builder()
                .appModule(new AppModule(this))
                .build();
        appComponent.inject(this);
    }

    public static AppComponent getAppComponent() {
        return appComponent;
    }

На других моделях (4,5,6 Android) это работает хорошо. Очистить и восстановить, с перезапуском и аннулированием кэша не помогло

1 ответ

Проблема была с мгновенным пробегом. Я отключаю его и все работает хорошо.

Другие вопросы по тегам