0

J'ai créé une bibliothèque android qui a certaines dépendances comme volley, SqlCipher etc dans son fichier gradle. Lorsque j'utilise le fichier aar pour cette bibliothèque dans un autre projet, je reçois le fichier ClassNotFoundError w.rt. SqlCipher et Volley. Je pense qu'il pourrait être lié à quelque chose appelé dépendance transitive. Est-ce que quelqu'un peut m'aider avec ça?Les dépendances transitives ne sont pas reflétées dans l'application android

fichier Gradle pour sdk:

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "24.0.2" 

    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFile('proguard-rules.pro') 

     } 
    } 
} 

repositories { 
    maven { 
     url "https://jitpack.io" 
    } 
    mavenCentral() 
    jcenter() 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.0.0' 
    compile 'net.zetetic:android-database-sqlcipher:3.4.0' 
    //compile 'net.zetetic:android-database-sqlcipher:[email protected]' 
    compile 'com.google.android.gms:play-services-location:10.2.0' 
    compile 'com.android.volley:volley:1.0.0' 
    compile 'com.android.support:design:23.0.0' 
    compile 'com.google.android.gms:play-services:10.2.0' 
} 

Gradle pour l'application:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 

    defaultConfig { 
     applicationId "com.example.amankush.sdktesting" 
     minSdkVersion 15 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:25.2.0' 
    compile (project(':sdk-debug')) 

} 

Répondre

0

Vous devez ajouter transitive=true en vous app.gradle construire où vous incluez l'AAR.

Vous pouvez obtenir le même que ci-dessous:

compile ('YOUR_GROUP_ID:ARTIFACT_ID:[email protected]'){ 
    transitive=true 
} 
+0

Je pense que cela ne fonctionne que pour les bibliothèques publiées, je nai encore publié ma bibliothèque. –

+0

fichier Gradle pour l'application: dépendances { compilez FileTree (comprennent: [ '* .jar'], dir: 'libs') testCompile 'JUnit: JUnit: 4,12' « Compile com.android.support:appcompat- v7: 25.2.0' compilation (projet (': sdk-debug')) } settings.gradle: comprennent ': app', ': sdk-debug' J'ai inclus sdk-debug en tant que dépendance de module. –

+0

@AmanKush Pourriez-vous poster votre gradle? –