【问题标题】:Create Library and AAR in Android Studio 2.2在 Android Studio 2.2 中创建库和 AAR
【发布时间】:2016-11-03 21:08:31
【问题描述】:

我查看了 Android Developers here 中的一般信息以及 Stack Overflow here1here2here3here4 中的先前问题。

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

首先,我在 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)

其次,我新建一个库:File、New、New Module、Android Library

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 在 Test 中?如果我想在其他地方使用它,它应该在其他地方吗?我该如何移动它?

第三,在 settings.gradle 我有:

include ':app', ':mylibrary'

第四,我建立 MyLibrary:

Build, Make Module 'mylibrary'.

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

我错过了什么?

【问题讨论】:

    标签: android android-studio-2.2


    【解决方案1】:

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

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

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

    编辑:

    要安装到本地 maven 存储库,首先您需要在构建脚本中包含 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'
    }
    

    【讨论】:

    • 我创建的自动生成库在 build.gradle 中提到了 jcenter。我可以在没有任何 repo 网站的情况下在本地使用图书馆吗?自动生成的 .aar 文件名为 mockable-android-25.jar。这正常吗?
    • @tomihasa:那不是你的图书馆。这是一个包含所有 Android 方法的存根 .jar,因此您的项目将在您的计算机上编译。在您的库的 build.gradle 文件中,您需要顶部的 apply plugin: 'com.android.library
    • 对我来说,它说的是 jcenter() 而不是 maven。我还没有研究过 repos,所以在我准备好学习 repo 技术之前,我可以在没有 JCenter 或 Maven 的情况下做任何事情吗?
    • 你可以同时使用。它们只不过是寻找依赖关系的位置。 jcenter() 指向包含大部分第三方依赖项的远程存储库。 mavenLocal() 指向您计算机上的本地地址。
    • 我以为我为本地“库”找到了一个简单的解决方法:我只是在项目的 Java 代码目录中创建一个新文件夹并启动 Android Studio,但没有奏效。
    猜你喜欢
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 2015-02-23
    相关资源
    最近更新 更多