2017-02-15 2 views
0

Im Folgenden finden Sie meine App-Level-Gradle-Datei. Ich habe versucht, appcompat, Support v4 zu entfernen, aber es war keine Hilfe. Die App funktioniert ansonsten gut, ich bekomme den Fehler nur, wenn ich versuche, eine signierte Apk zu generieren.Kann signiertes APK nicht generieren - doppelter Eintrag: javax/annotation/CheckForNull.class

buildsript { 
    repositories { 
     maven { url 'https://maven.fabric.io/public' } 
    } 

    dependencies { 
     classpath 'io.fabric.tools:gradle:1.+' 
    } 
} 
apply plugin: 'com.google.gms.google-services' 
apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.1" 

    defaultConfig { 
     applicationId "com.aubergine.resqv1" 
     minSdkVersion 16 
     targetSdkVersion 25 
     versionCode 10109 
     versionName "1.2.0" 
     // Enabling multidex support. 
     multiDexEnabled true 

     // Flag to tell aapt to keep the attribute ids around 
     aaptOptions { 
      additionalParameters "--no-version-vectors" 
     } 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      shrinkResources true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 
repositories { 
    mavenCentral() 
    //For Mint bug reporter 
    maven { url "https://mint.splunk.com/gradle/" } 
    //For bug report and crash report 
    maven { url "https://jitpack.io" } 
    maven { url 'https://maven.fabric.io/public' } 
    maven { url 'http://maven.localytics.com/public' } 

} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    // libs for Material design 
    // libs for dependency Injection 
    // libs for Common font for Application 
    //libs for calling api using Retrofit 
    //For calling api using retrofit 
    //For Mint bug reporter 
    //For graph 
    //libs for MaterialDesign EditText 
    //For Circle Image 
    //for universal image loader 
    //For Number Picker in Estimated Time https://github.com/KasualBusiness/MaterialNumberPicker 

    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 
    compile('com.digits.sdk.android:digits:[email protected]') { 
     transitive = true; 
    } 


    compile 'com.android.support:appcompat-v7:25.1.0' 
    compile 'com.android.support:design:25.1.0' 
    compile 'com.android.support:support-v4:25.1.0' 
    compile 'com.jakewharton:butterknife:7.0.1' 
    compile 'uk.co.chrisjenx:calligraphy:2.1.0' 
    compile 'com.squareup.retrofit:retrofit:1.9.0' 
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0' 
    compile 'com.squareup.okhttp:okhttp:2.0.0' 
    compile 'com.github.PhilJay:MPAndroidChart:v2.1.5' 
    compile 'com.rengwuxian.materialedittext:library:2.1.4' 
    compile 'com.squareup.okhttp3:logging-interceptor:3.0.1' 
    compile 'de.hdodenhof:circleimageview:2.0.0' 
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' 
    compile 'biz.kasual:materialnumberpicker:1.2.0' 
    compile 'com.google.android.gms:play-services-analytics:10.0.1' 
    compile 'com.google.firebase:firebase-appindexing:10.0.1' 
    compile 'com.facebook.stetho:stetho:1.4.2' 
    compile 'com.facebook.stetho:stetho-okhttp3:1.4.2' 
    compile 'com.shawnlin:number-picker:2.4.1' 
    compile 'com.google.android.gms:play-services-ads:10.0.1' 
    compile 'com.localytics.android:library:4.2.+' 
    compile 'com.google.firebase:firebase-core:10.0.1' 
    compile 'com.google.firebase:firebase-messaging:10.0.1' 
    testCompile 'junit:junit:4.12' 
} 

Auch gibt es zwei CheckForNull Klasse, infact es doppelte Klassen in JSR-305. Der Screenshot:

screenshot

Was für eine kluge Lösung für dieses Problem wäre?

+0

Es scheint mir, dass Sie mindestens zwei Bibliotheken in Ihrem 'build.gradle' sind, die beide' javax' als ihre Abhängigkeit (aka transitive Abhängigkeit) haben. Sie importieren also zwei verschiedene Versionen von 'javax' lib in Ihre Codebase, und deshalb haben Sie Klassen verdoppelt. Schauen Sie sich einfach alle Abhängigkeiten './gradlew app: dependencies' an und suchen Sie zwei Bibliotheken, die eine Abhängigkeit von' javax' haben und schließen Sie diese Abhängigkeit für einen von ihnen aus. – azizbekian

Antwort

0

Bitte reinigen Sie für die Erstellung von Gradle mit dem Befehl ./gradlew clean.

+0

Bereits getan. Keine Hilfe! –

Verwandte Themen