将gradle依赖添加到库aar包中

Cha*_*ddy 5 android android-gradle-plugin aar

我正在为供应商制作一个库项目,它需要 Android Volley 作为依赖项。我已使用此在 Android Studio 中创建 aar 文件来创建 .aar 文件并将其包含在测试项目中,我正在使用此使用“flatDirs”将本地 .aar 文件添加到 Gradle 构建不起作用。该库链接良好,项目编译没有错误。但在运行时测试应用程序崩溃并表示找不到 Volley

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/android/volley/toolbox/Volley;
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.volley.toolbox.Volley" on path: DexPathList[[zip file "/data/app/in.gridsync.acttest-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Run Code Online (Sandbox Code Playgroud)

我的库项目的 Gradle 文件是这样的

    apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 23
        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:23.1.0'
    compile 'com.mcxiaoke.volley:library:1.0.19'
}
Run Code Online (Sandbox Code Playgroud)

在测试项目中,gradle是这样的

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "in.gridsync.acttest"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile project(':openapp-library')
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.0'
}
Run Code Online (Sandbox Code Playgroud)

我假设,当创建 .aar 包时,它会使用并包含对 Volley 库的依赖项。有人可以解释一下吗?

Tun*_*gci 1

据我所知,您必须为 .aar 库添加“@aar”。另外,jar 文件不是必需的,它会自行下载。尝试这个:

compile 'com.mcxiaoke.volley:library:1.0.19@aar'
Run Code Online (Sandbox Code Playgroud)