我一直在尝试新的Android构建系统,我遇到了一个小问题.我已经编译了自己的ActionBarSherlock的aar包,我称之为'actionbarsherlock.aar'.我正在尝试做的实际上是使用这个aar来构建我的最终APK.如果我使用编译项目(':actionbarsherlock')将整个ActionBarSherlock库作为android-library模块包含到我的主项目中,我可以成功构建而没有任何问题.
但我的问题是,我想将该依赖项作为aar文件包手动提供,如果我想要一个JAR,那么我似乎无法弄清楚如何正确地将它包含到我的项目中.我试图使用编译配置,但这似乎不起作用.我继续在编译期间找不到符号,这告诉我来自aar包的classes.jar没有包含在类路径中.
有谁知道手动将aar包作为文件包含的语法?
的build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile files('libs/actionbarsherlock.aar')
}
android {
compileSdkVersion 15
buildToolsVersion "17.0"
}
Run Code Online (Sandbox Code Playgroud)
编辑:所以答案是它目前不支持,如果你想跟踪它,这是问题.
编辑:目前仍然没有直接支持,最好的替代方案似乎是来自@RanWakshlak的建议解决方案
编辑:使用@VipulShah提出的语法也更简单
类似问题中的所有答案都谈论了manderally编辑gradle文件.但我已经使用Android Studio导入AAR文件并检查了build.gradle文件,它们看起来都是正确的.
我的问题是:

我已经导入了ShowCaseView v5.0.0 AAR但是当我尝试在Tutorial.java文件中导入类时(你可以看到红色),Android Studio无法识别这些类.Android Studio识别的唯一导入是com.github.amlcurran.showcaseview.R.
我还试图清理和重建项目,关闭并重新打开Android Studio,但它没有帮助.
PS请忽略丢失的XML文件,就像我将它们复制到项目之前一样.
ShowCaseView-5.0.0> build.gradle:
configurations.create("default")
artifacts.add("default", file('ShowCaseView-5.0.0.aar'))
Run Code Online (Sandbox Code Playgroud)
我的应用程序的build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.giraffeweather"
minSdkVersion 19
targetSdkVersion 21
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:21.0.3'
compile project(':ShowCaseView-5.0.0')
}
Run Code Online (Sandbox Code Playgroud)
Android Studio项目的build.gradle:
// Top-level build file where you can add configuration options common to …Run Code Online (Sandbox Code Playgroud) 在我的Android Studio Gradle项目中,我使用了几个库,而一个库应该使用本地AAR文件作为依赖项.我使用流行的解决方案将AAR文件作为依赖项包含在我的库项目中:
flatDir {
dirs 'libs'
}
compile(name: 'aar-library', ext: 'aar')
Run Code Online (Sandbox Code Playgroud)
当我现在尝试同步时,我收到错误消息
无法解决:依赖'aar-library'
在我的主项目中,即使我没有在那里使用/引用AAR文件.如果我只是将AAR文件复制到我的主项目的libs文件夹中也可以.任何的想法?