使用“flatDirs”将本地.aar文件添加到Gradle构build不起作用
我意识到这个问题: 添加本地.aar文件到我的gradle构build,但解决scheme不适合我。
我试着将这个语句添加到我的build.gradle
文件的顶层:
repositories { mavenCentral() flatDir { dirs 'libs' } }
我也把slidingmenu.aar
文件放到/libs
,并在dependencies
部分引用它: compile 'com.slidingmenu.lib:slidingmenu:1.0.0@aar'
但是根本不起作用。
我试过compile files('libs/slidingmenu.aar')
,但没有运气。
我错过了什么? 有任何想法吗?
PS Android Studio 0.8.2
基于Josiah的回答,下面是我如何运作的。
按照他的指示(在编辑下)( 文件 – >新build – >新模块 – >导入.JAR / .AAR )并导入您的.AAR。
然后在你的项目build.gradle(不是顶层的,'app'下的)添加以下内容(在依赖项部分):
dependencies { compile project(':Name-Of-Your-Project') }
注意项目名称应该与导入AAR文件(与顶级文件夹下的app/.idea
相同级别)后添加的文件夹的名称相匹配。 或换一种说法
我的应用程序 。理念 应用 build.gradle(这里是添加编译项目(':ProjectName')到依赖部分) ProjectName(导入后自动添加,匹配您的aar文件的名称) build立 gradle这个 等等
这工作对我运行Android Studio 0.8.0。 执行此操作后,不要忘记同步gradle(使用工具栏button或在文件 – >同步 )。
(感谢Josiah让我走向正确的方向)
(注意:在此之前,我尝试将其添加到libs文件夹,试图操纵最高级别的build.gradle
和应用程序级别的build.gradle
,但没有任何工作我的aars文件 – jar的将工作正常,但不aar文件)
更新 :正如@ amram99提到的,这个问题已经在Android Studio v1.3发布的时候被修复了。
testing和validation以下规格
- Android Studio v1.3
- gradle插件v1.2.3
- Gradle v2.4
现在什么工作
-
现在,您可以通过Android Studio v1.3中的文件>新build>新build模块>导入.JAR / .AAR包选项导入本地aar文件
-
然而,下面的答案保持真实有效,不pipeAndroid Studio的变化,因为这是基于gradle脚本。
旧答案:在最近的更新中,android的人们通过Android Studio的添加新模块菜单选项打破了本地aar文件的包含。 检查这里列出的问题 。 无论进出IDE的function列表如何,下面的方法在处理本地的aar文件时都有效(今天testing过):
将aar文件放在libs目录(如果需要的话创build它),然后在build.gradle中添加下面的代码:
dependencies { compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar') } repositories{ flatDir{ dirs 'libs' } }
编辑:使用本地AAR文件作为构build依赖的正确方法是使用模块导入向导(文件|新build模块|导入.JAR或.AAR包),它将自动添加.aar作为库模块在你的项目中。
老答案
尝试这个:
allprojects { repositories { jcenter() flatDir { dirs 'libs' } } } ... compile(name:'slidingmenu', ext:'aar')
我在Android Studio 2.1上工作。 我有一个名为“Native_Ads”,在多个项目中共享的模块。
首先,我在我的Native_ads模块中创build一个名称为“aars”的目录,然后将aar文件放在那里。
目录结构:
libs/ aars/ <-- newly created src/ build.gradle etc
然后,其他的变化:
顶级Gradle文件:
allprojects { repositories { jcenter() // For module with aar file in it flatDir { dirs project(':Native_Ads').file('aars') } } }
应用程序模块的build.gradle文件: – 无变化
Settings.gradle文件(包含模块):
include ':app' include 'Native_Ads' project(':Native_Ads').projectDir = new File(rootProject.projectDir, '../path/to/Native_Ads')
Native_Ads模块的Gradle文件:
repositories { jcenter() flatDir { dirs 'aars' } } dependencies { compile(name:'aar_file_name_without_aar_extension', ext:'aar') }
而已。 清理和build立。
现在最简单的方法是将其作为模块添加
这将创build一个包含aar文件的新模块,因此您需要将该模块作为依赖关系包含在内
你可以这样做。 它需要采用maven格式:
repositories { maven { url uri('folderName')} }
然后你的AAR需要进入一个文件夹结构中的组ID“com.example”:
folderName/ com/ example/ verion/ myaar-version.aar
然后引用为依赖:
compile 'com.example:myaar:version@aar'
version
是你的aar文件的版本(即3.0等)
对于Android Studio 1.4中存在这个问题的任何人,我通过在包含两件事情的项目中创build一个模块来解决这个问题。
-
搭build以下内容:
configurations.create("default")
artifacts.add("default", file('facebook-android-sdk-4.7.0.aar'))
-
aar文件(在这个例子中是“facebook-android-sdk-4.7.0.aar”)
然后将新库作为模块依赖包含在内。 现在,您可以使用build立的aar,而不在项目中包含源代码。
感谢Facebook的这个黑客。 我在将Android SDK集成到项目中的同时find了解决scheme。
在我的情况下,没有上述的答案工作! 因为我有不同的productFlavors只是添加repositories{ flatDir{ dirs 'libs' } }
不工作! 我结束了指定libs目录的确切位置:
repositories{ flatDir{ dirs 'src/main/libs' }
}
猜测应该在build.gradle中有不同的productFlavors时引入flatDirs
这是我的结构,我如何解决这个问题:
MyProject / app / libs / mylib-1.0.0.aar
MyProject的/应用/ myModulesFolder / myLibXYZ
在build.gradle
从Project / app / myModulesFolder / myLibXYZ
我已经把这个:
repositories { flatDir { dirs 'libs', '../../libs' } } compile (name: 'mylib-1.0.0', ext: 'aar')
完成和工作正常,我的子模块XYZ取决于主模块的某些库。
- android.view.InflateException:二进制XML文件:错误膨胀类的片段
- Android Studio渲染问题:无法find以下类
- 如何在Android中制作圆形自定义进度条
- 清洁工程和android studio重build工程的区别
- 从其他应用程序启动Facebook应用程序
- 自定义后退buttonanimation
- RuntimeException:你的内容必须有一个ListView,它的id属性是'android.R.id.list'
- 在layout / main.xml主布局文件中的TextView中设置textColor不引用colors.xml文件。 (它想要#RRGGBB而不是@ color / text_color)
- 写入/ res / drawable /在飞行中?