2016-11-03 111 views
0

创建库和AAR我看着一般信息在Android开发者here和以前的问题在堆栈溢出here1here2here3here4Android Studio中2.2

我想创建一个新的“实用程序库”,我可以使用其他项目,但有一些我不明白。这是我做的:

首先,我在Android Studio中开始新的项目2.2(OS X 10.11):

Application name: Test 
Package name: com.example.tomihasa.test 
Minimum SDK: API 15: Android 4.0.3 
Activity: Empty Activity 
() Backwards Compatibility (AppCompat) 

其次,我开始一个新的图书馆:文件,新建,新建模块,Android的图书​​馆

Application/Library name: MyLibrary 
Package name: com.example.tomihasa.mylibrary 
Minimum SDK: API 15: Android 4.0.3 

我现在有目录:

/Users/tomihasa/AndroidStudioProjects/Test 
/Users/tomihasa/AndroidStudioProjects/Test/mylibrary 

为什么内部测试在MyLibrary?如果我想在其他地方使用它,它应该在别的地方吗?我该如何移动它?

三,settings.gradle我:

include ':app', ':mylibrary' 

第四,我建立在MyLibrary:

Build, Make Module 'mylibrary'. 

here提到我找不到任何.JAR或.AAR包。

我错过了什么?

回答

0

您正在创建一个module,它位于您的Test项目中。你所有的模块都会包含在这里。模块本身应该有它自己的构建脚本和目录,并且可以独立于项目的其余部分使用,如果它没有任何其他模块的依赖关系。

如果需要,您仍然可以在其他项目中将此模块用作库。 Android Studio将在您每次构建文件时创建aar文件(调试和/或发布)并将其放入您的Test/myLibrary/build/outputs/aar/文件夹中。它们应该分别命名为{module-name}-debug.aar{module-name}-release.aar。您也可以将aar上传到本地maven存储库或直接在其他项目中使用aar。如果没有出现,那么您可能需要通过访问Build->Clean Project在Android Studio中完成一个干净的项目。

如果要创建独立库,则需要创建单独的项目。然后,您必须使用上述方法之一将内置的aar导入到其他项目中。

编辑:

要安装到本地仓库,首先你需要在你的构建脚本mavenLocal()回购。

然后在你的图书馆的build.gradle文件,你需要应用maven插件:

apply plugin: 'com.android.library' 
apply plugin: 'maven' 

android { 

    ... 

    task installArchives(type: Upload) { 
     description 'This task will upload the build to mavenLocal()' 
     repositories.mavenInstaller { 
      pom.version = '0.0.1' 
      pom.artifaceId = 'myLibrary' 
      pom.groupId = 'com.example.tomihasa' 
     } 
    } 
} 

在gradle这个控制台,输入./gradlew build installArchives建立和上传。

那么你的项目,可以通过在mavenLocal()他们构建脚本,做安装:

dependencies { 
    compile 'com.example.tomihasa:myLibrary:0.0.1' 
} 
+0

我所做的自动生成库的build.gradle提到jcenter。我可以在没有任何回购网站的地方使用本地图书馆吗?自动生成的.aar文件被命名为mockable-android-25.jar。这是正常的吗? – tomihasa

+0

@tomihasa:那不是你的图书馆。这是一个包含所有Android方法的存根.jar,因此您的项目将在您的计算机上进行编译。在你的库的'build.gradle'文件中,你需要在顶部应用插件:'com.android.library'。 – DeeV

+0

对我来说它说的是jcenter()而不是maven。我还没有研究过回购协议,所以我可以在没有JCenter或Maven的情况下做所有事情,直到我准备好学习回购技术? – tomihasa

相关问题