簡體   English   中英

Android aar依賴項

[英]Android aar dependencies

我是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'
    }

我能夠通過將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;
    }  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM