Android: ошибка при модернизации после добавления SendBird (chat API) в проект

мой проект работал нормально до вчерашнего дня, когда я решил использовать SendBird в качестве API чата, поэтому я прочитал его документацию и добавил в gradle, вход в систему работает нормально, он компилируется и работает без ошибок, но когда я перехожу к действию, которое делает http-запрос (с модификацией), мое приложение падает с этой трассировкой стека:

java.lang.NoClassDefFoundError: retrofit2.Utils

Я получаю эту ошибку только в том случае, если Sendbird добавлен в gradle, если я удаляю SendBird зависимостей gradle, эта ошибка не возникает. Я не знаю, почему это происходит, но вот мой build.gradle (уровень приложения):

apply plugin: 'com.android.application'

android {
compileSdkVersion 24
buildToolsVersion "24"
useLibrary 'org.apache.http.legacy'

defaultConfig {
    applicationId "com.testdevelop.app.br"
    minSdkVersion 14
    multiDexEnabled true
    targetSdkVersion 24
    versionCode 91
    versionName "2.0.4"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        debuggable true
        minifyEnabled false
    }
}


dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:design:24.1.1'
compile 'com.android.support:support-v4:24.1.1'
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.android:flexbox:0.2.2'
compile 'com.google.android.gms:play-services-gcm:9.2.1'
compile 'com.google.android.gms:play-services-analytics:9.2.1'
compile 'com.google.android.gms:play-services-appindexing:9.2.1'
compile 'com.google.android.gms:play-services-auth:9.2.1'
compile 'com.google.code.gson:gson:2.7'
compile 'com.daimajia.swipelayout:library:1.2.0@aar'
compile 'com.afollestad.material-dialogs:core:0.8.6.1'
compile 'com.mixpanel.android:mixpanel-android:4.9.1'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.facebook.android:facebook-android-sdk:4.5.0'
compile 'joda-time:joda-time:2.9.4'
compile 'com.nispok:snackbar:2.11.+'
compile 'com.sendbird.sdk:sendbird-android-sdk:3.0.0'
compile files('libs/universal-image-loader-1.9.1.jar')
}

Заранее спасибо.


person Daniel Gomes    schedule 27.08.2016    source источник


Ответы (1)


Я протестировал SendBird SDK с Retrofit, создав простой проект Android, который включает библиотеки SendBird и Retrofit.

Я не нашел никаких ошибок, чтобы запустить его.

Похоже, вы забыли обновить правила Proguard для своей библиотеки Retrofit.

Это правило Proguard, предложенное в Retrofit. http://square.github.io/retrofit/

# Platform calls Class.forName on types which do not exist on Android to determine platform.
-dontnote retrofit2.Platform
# Platform used when running on RoboVM on iOS. Will not be used at runtime.
-dontnote retrofit2.Platform$IOS$MainThreadExecutor
# Platform used when running on Java 8 VMs. Will not be used at runtime.
-dontwarn retrofit2.Platform$Java8
# Retain generic type information for use by reflection by converters and adapters.
-keepattributes Signature
# Retain declared checked exceptions for use by a Proxy instance.
-keepattributes Exceptions
person Harry Kim    schedule 12.09.2016