我正在为我的应用程序使用Fabric API和twitter Kit,但我总是只为某些构建版本收到错误。 就我在API 19上的情况而言,我收到了错误:
Fabric.with(this, new Twitter(authConfig));
这是错误
java.lang.NoClassDefFoundError: retrofit2.Retrofit$Builder
at com.twitter.sdk.android.core.internal.oauth.OAuthService.<init>(OAuthService.java:69)
at com.twitter.sdk.android.core.internal.oauth.OAuth2Service.<init>(OAuth2Service.java:59)
at com.twitter.sdk.android.core.TwitterCore.createGuestSessionProvider(TwitterCore.java:223)
at com.twitter.sdk.android.core.TwitterCore.getGuestSessionProvider(TwitterCore.java:216)
at com.twitter.sdk.android.tweetui.TweetUi.onPreExecute(TweetUi.java:77)
at io.fabric.sdk.android.InitializationTask.onPreExecute(InitializationTask.java:44)
at io.fabric.sdk.android.services.concurrency.AsyncTask.executeOnExecutor(AsyncTask.java:611)
at io.fabric.sdk.android.services.concurrency.PriorityAsyncTask.executeOnExecutor(PriorityAsyncTask.java:43)
at io.fabric.sdk.android.Kit.initialize(Kit.java:69)
at io.fabric.sdk.android.Fabric.initializeKits(Fabric.java:439)
at io.fabric.sdk.android.Fabric.init(Fabric.java:383)
at io.fabric.sdk.android.Fabric.setFabric(Fabric.java:341)
at io.fabric.sdk.android.Fabric.with(Fabric.java:312)
at com.lmst.runnincity.Model.SkobblerAddOn.onCreate(SkobblerAddOn.java:39)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4446)
at android.app.ActivityThread.access$1500(ActivityThread.java:143)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1302)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5124)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:613)
at dalvik.system.NativeStart.main(Native Method)
这是我的build.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'
android {
compileSdkVersion 24
buildToolsVersion "24.0.0"
defaultConfig {
applicationId "com.**********"
minSdkVersion 15
targetSdkVersion 24
versionCode 2
versionName "1.1.1"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
zipAlignEnabled true
}
}
sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } }
}
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.google.code.gson:gson:2.7'
compile 'com.android.support:appcompat-v7:24.0.0'
compile 'com.google.firebase:firebase-core:9.2.0'
compile 'com.google.firebase:firebase-database:9.2.0'
compile 'com.google.firebase:firebase-storage:9.2.0'
compile 'com.google.firebase:firebase-auth:9.2.0'
compile 'com.wx.wheelview:wheelview:1.3.3'
compile project(':sdktools')
compile 'com.google.android.gms:play-services-appindexing:9.2.0'
compile 'uk.co.chrisjenx:calligraphy:2.2.0'
compile 'com.github.lzyzsd:circleprogress:1.1.0@aar'
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
compile('com.twitter.sdk.android:twitter:2.0.0@aar') {
compile('com.twitter.sdk.android:tweet-composer:2.0.0@aar') {
transitive = true;
}
transitive = true;
}
}
apply plugin: 'com.google.gms.google-services'
答案 0 :(得分:-2)
尝试包含对多索引https://developer.android.com/studio/build/multidex.html的支持 我的依赖关系很简单,就像Crashlytics一样:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') {
transitive = true;
}
compile('com.twitter.sdk.android:twitter:2.3.1@aar') {
transitive = true;
}
...
compile 'com.android.support:multidex:1.0.1'
}