所以我创建了一个Android库并成功编译成.aar文件。我称这个 aar 文件为:"projectx-sdk-1.0.0.aar". 现在我希望我的新项目依赖于这个 aar,所以我所做的就是关注这篇文章。
"projectx-sdk-1.0.0.aar"
但是这个帖子让我很困惑,因为我没有得到想要的结果:
aar的包名是: com.projectx.photosdk,里面的模块叫做sdk
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块:
flatDir
repostories
repositories
buildscript
repositories { mavenCentral() flatDir { dirs 'aars' } }
我对此进行了测试,它在我的设置中运行良好。