所以我创建了一个Android库并将其成功编译为.aar文件,我将其称为aar文件:"projectx-sdk-1.0.0.aar"现在,我希望我的新项目依赖于此aar,因此我所做的就是关注这篇文章:http://life.nimbco.us/referencing-local-aar-files-with-android-studios-new-gradle-based-build-system/

但是帖子使我感到困惑,因为我没有得到理想的结果:

aar的软件包名称是:com.projectx.photosdk,其中的模块称为sdk
这是我当前的项目结构:

|-SuperAwesomeApp
|--.idea
|--gradle
|--App
|---aars
|----projectx-sdk-1.0.0.aar
|---build
|---jars
|---src
|---build.gradle

他是我的gradle构建文件:
apply plugin: 'android'

buildscript {
    repositories {
        mavenCentral()
        flatDir {
            dirs 'aars'
        }
    }
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:gridlayout-v7:19.0.1'
    compile 'com.android.support:support-v4:19.0.1'
    compile 'com.android.support:appcompat-v7:19.0.1'


    compile 'com.projectx.photosdk:sdk:1.0.0@aar'
//    compile files( 'aars/sdk-1.0.0.aar' ) // Does not work either
}

//编辑

我得到的错误:
Failed to refresh Gradle project 'SuperAwesomeApp'
     Could not find com.projectx.photosdk:sdk:1.0.0.
     Required by:
     SuperAwesomeApp:App:unspecified

最佳答案

您将flatDir块放到了错误的repostories块中。 repositories中的buildscript块告诉Gradle在哪里可以找到Android-Gradle插件,但不能找到其余的依赖项。您需要这样的另一个顶级repositories块:

repositories {
    mavenCentral()
    flatDir {
        dirs 'aars'
    }
}

我对此进行了测试,并且可以在我的设置上正常运行。

08-17 17:36
查看更多