2015-09-01 40 views
0

我目前没有为我的第三方依赖使用"libs" folder(它似乎是自动添加到build/intermediates/pre-dexed /),但注意到它可能有助于静态代码分析,所以我想将它添加到项目中。 注意:我使用的是maven dependencies如何在gradle android项目中创建和维护“libs”?

我的问题:是否有人使用自定义脚本来生成此文件夹?我几乎不认为这是一次生成的,然后在有新版本可用时手动维护。

请赐教!

+0

这取决于是否是本地罐子或Maven依赖 –

+0

在这种情况下Maven依赖,我会澄清的问题 – Alix

回答

2

使用Android Studio AND Gradle,有不需要使用libs文件夹(旧的.jar库除外)。

事实上,你可以开发Android应用程序的Android whitout工作室在你的build.gradle已经有一个apply plugin: 'com.android.application'

Gralde通过gradle这个依赖使用Maven或jCenter导入库。 Gradle和Android Gradle插件将自动下载库文件,如您在构建/文件夹中所述。它不是静态的,可以在Android Studio上使用Clean projet进行清理。此外,Android Studio会在您的build.gradle中自动提供新的库版本时添加警告。

不要错过采用进口的.jar库我目前没有使用的“库”文件夹,我的第三方的依赖(看来他们会自动添加到建立/中间体

+0

但即使没有Android的工作室,当我编译使用命令行它可以很好地处理没有libs文件夹的依赖项。 – Alix

+0

这是完全正常的@Alix你的build.gradle'应用插件:'com.android.application'' –

+0

没错。那么“Android Studio”不是真的需要这个工作呢?或者你的意思是说没有它的其他IDE不能正常工作? – Alix

0

libs文件夹/预),但注意到它可能有助于静态代码分析,因此我想将其添加到项目中。注意:我正在使用Maven依赖关系。

不要混淆libs文件夹和build/intermediates/pre-dexed/文件夹。
目前gradle插件Android管理构建过程并创建这些“内部”和中间文件夹。

我的问题:是否有人使用自定义脚本来生成此文件夹? 我几乎认为这是一次生成的

您不必创建此文件夹。 Android的Gradle插件为您管理它。当您运行gradlew clean命令时,它也会被删除并重新创建。

然后当有更新版本可用时手动维护。

不可以。您的依赖关系在您的build.gradle文件中定义。
定义新版本时,Gradle会下载新的依赖关系并更新中间文件夹。

您可以在许多方面定义你的依赖:

dependencies{ 
    //You can create a folder and put jar files inside. You can use your favorite name, usually it is libs. 
    compile fileTree(dir: 'libs', include: ['*.jar']) 

    //The support libraries dependencies are in a local maven managed by SDK 
    compile 'com.android.support:appcompat-v7:23.0.0' 

    // A Maven dependency 
    compile 'com.squareup.picasso:picasso:2.5.2' 

    //A local library 
    compile project(':mylibrary') 

    //An aar file. It requires to define a repository. 
    //repositories{ 
    // flatDir{ 
    //   dirs 'libs' 
    //  } 
    //} 
    compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar') 
}