首页 文章

Android aar依赖项

提问于
浏览
7

我是Gradle构建系统的新手,我有一个库项目,其中包含Retrofit,okhttp等依赖项 .

我编译了我的项目并创建了一个aar文件 . 我创建了一个虚拟项目,并将我的库添加为依赖项 .

现在,如果我不在我的虚拟应用程序的build.gradle文件中添加Retrofit和okhttp作为依赖项,那么我的应用程序会因类未找到异常而崩溃 .

我的问题是:由于库aar文件已经包含Retrofit和okhttp作为依赖,那么为什么我还需要在dummy app的build.gradle文件中显式添加它们呢?有解决方法吗?

这是我的库build.gradle

apply plugin: 'com.android.library'
    buildscript {
        repositories {
            mavenCentral()
            jcenter()
        }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.+'
    }
}
allprojects {
    repositories {
        jcenter()
    }
}
android {
    compileSdkVersion 22
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }}
    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.+'
    compile 'com.android.support:recyclerview-v7:21.+'
    compile 'com.android.support:cardview-v7:21.+'
    compile 'com.google.android.gms:play-services:6.5.87'
    compile 'com.squareup.okhttp:okhttp:2.2.0'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    }

1 回答

  • 5

    我能够通过将aar文件添加到本地maven存储库来解决此问题 . 不知何故只是在libs文件夹中添加aar并将其作为依赖项包含它并不能解决问题 .

    如果遇到类似问题,只需使用这些添加内容修改库项目build.gradle即可

    apply plugin: 'maven'
    
       version = "1.0"
       group = "com.example.lib"
    
    
    
    buildscript {
        repositories {
            mavenCentral()
            mavenLocal()
        }
    
        dependencies {
            classpath 'com.github.dcendents:android-maven-plugin:1.0'
        }
    }
        repositories {
           mavenLocal()
         }
    
    uploadArchives {
        repositories {
            mavenDeployer {
                repository(url: "file://${System.env.HOME}/.m2/repository/")
            }
        }
    }
    

    在Android工作室本身提供的终端中运行任务为./gradlew uploadArchives

    然后在app模块的build.gradle文件中,将库添加为依赖项

    compile ('com.example.app:ExampleLibrary:1.0@aar') {
            transitive = true;
        }
    

相关问题