2016-01-05 6 views
4

Я использую как rxjava/rxandroid, так и jackson-databind в своем приложении, но кажется, что обе библиотеки не могут работать вместе. Когда я пытаюсь запустить мое приложение возвращает следующее сообщение об ошибке:Не нашел класс rx.android.schedulers.AndroidSchedulers

java.lang.ClassNotFoundException: rx.android.schedulers.AndroidSchedulers 

вот мой Gradle файл:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     applicationId "myapp" 
     minSdkVersion Integer.parseInt(project.ANDROID_MIN_SDK_VERSION) 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 


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

    lintOptions { 
     abortOnError false 
    } 
} 

repositories { 
    mavenCentral() 
    flatDir { 
     dirs 'libs' 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.pspdfkit:pspdfkit:[email protected]' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:recyclerview-v7:23.1.1' 
    compile 'com.android.support:cardview-v7:23.1.1' 
    compile 'com.google.guava:guava:19.0' 
    compile 'org.lucasr.twowayview:twowayview:0.1.4' 
    compile 'com.joanzapata.pdfview:android-pdfview:[email protected]' 
    compile 'net.lingala.zip4j:zip4j:1.3.2' 
    compile 'com.github.chrisbanes.photoview:library:1.2.4' 
    compile 'com.makeramen:roundedimageview:2.2.1' 
    compile 'com.github.bumptech.glide:glide:3.6.1' 
    compile 'ch.acra:acra:4.7.0' 

    compile 'io.reactivex:rxjava:1.1.0' 
    compile 'io.reactivex:rxandroid:1.1.0' 

    compile ('com.koushikdutta.ion:ion:2.+') { 
     exclude (group: 'com.google.code.gson') 
    } 
    compile (project (':common')) 

}

внутри общего проекта есть зависимость джексон, которая делает приложение производит эту ошибку:

compile 'com.fasterxml.jackson.core:jackson-databind:2.7.0-rc2' 

у кого-нибудь была эта проблема? Есть ли простое решение?

+1

ДЖЕКСОНА-DataBind не использует RxJava вообще. Что заставляет вас думать, что это проблема? Бьюсь об заклад, что он имеет больше общего с multidex и не загружает соответствующие классы в основной файл dex, но это всего лишь общее предположение. –

+0

Что заставило меня подумать, что удаление зависимости Jackson-databind от градиента работает. Но вы правы, конфигурация multidex была плохим парнем. Решаемые. Благодаря @DanielLew –

ответ

5

Проблема возникает из-за использования RxAndroid и поддержки multidex. Решение, которое сработало для меня, заключалось в добавлении android:name="android.support.multidex.MultiDexApplication" на уровне приложения в манифесте.

Если у вас есть что-то вроде android:name=".MyApp", а затем переопределить метод attachBaseContext()

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 

Все эти предложения приходят от

http://developer.android.com/tools/building/multidex.html

Смежные вопросы