0

SendBird をチャット API として使用することにした昨日まで、私のプロジェクトは正常に機能していたので、そのドキュメントを読んで gradle に追加しました。ログインは正常に機能し、コンパイルしてエラーなしで実行されますが、アクティビティに行くと、 http リクエスト (レトロフィットあり) を作成すると、アプリが次のスタックトレースでクラッシュします。

java.lang.NoClassDefFoundError: retrofit2.Utils

Sendbird が gradle に追加されている場合にのみこのエラーが発生します。gradle 依存関係の SendBird を削除すると、このエラーは発生しません。なぜこれが起こっているのかわかりませんが、ここに私の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')
}

前もって感謝します。

4

1 に答える 1

1

SendBird ライブラリと Retrofit ライブラリの両方を含む単純な Android プロジェクトを作成して、SendBird SDK と Retrofit をテストしました。

実行するためのエラーは見つかりませんでした。

Retrofit ライブラリの Proguard ルールを更新するのを忘れたようです。

これは、Retrofit で提案された Proguard ルールです。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
于 2016-09-12T11:35:56.920 に答える