我一直在尝试使用新的 android 构建系统,但遇到了一个小问题。我已经编译了我自己的 ActionBarSherlock 的 aar 包,我称之为“actionbarsherlock.aar”。我想要做的是实际上使用这个 aar 来构建我的最终 APK。如果我使用编译项目(’:actionbarsherlock’)将整个 ActionBarSherlock 库作为 android-library 模块包含到我的主项目中,我就能够成功构建而不会出现任何问题。
但我的问题是,我想手动提供该依赖项作为 aar 文件包,就像我想要一个 JAR一样,那么我似乎无法弄清楚如何正确地将它包含到我的项目中。我尝试使用编译配置,但这似乎不起作用。我一直在编译期间找不到符号,这告诉我来自 aar 包的 classes.jar 没有包含在类路径中。
有谁知道手动将 aar 包作为文件包含的语法?
构建.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" }
编辑:所以答案是它目前不受支持,如果你想跟踪它,这就是问题所在。
编辑:目前仍然不直接支持,最好的选择似乎是@RanWakshlak 提出的解决方案
编辑:使用@VipulShah 提出的语法也更简单
请按照以下步骤使其正常工作(我已将其测试到 Android Studio 2.2)
假设您将 aar 文件保存在 libs 文件夹中。(假设文件名是cards.aar)
cards.aar
然后在应用程序中build.gradle指定以下内容并单击与 Gradle 文件同步项目。打开项目级别 build.gradle 并flatDir{dirs 'libs'}像下面一样添加
build.gradle
flatDir{dirs 'libs'}
allprojects { repositories { jcenter() flatDir { dirs 'libs' } } }
现在打开应用程序级 build.grdle 文件并添加.aar文件
.aar
dependencies { implementation(name:'cards', ext:'aar') }
如果一切顺利,您将看到在 build -> exploded-aar 中创建了库条目
另请注意,如果您从另一个具有依赖项的项目中导入 .aar 文件,您也需要在 build.gradle 中包含这些文件。