我想在Android Studio中为我的库创建一个aar文件,我会使用一个jar选项,但我的库有资源。

知道如何从库中创建aar文件吗?


当前回答

顺便说一句,@aar没有传递依赖。你需要一个参数来打开它: 使用gradle无法解析aar库的传递依赖项

其他回答

顺便说一句,@aar没有传递依赖。你需要一个参数来打开它: 使用gradle无法解析aar库的传递依赖项

就像用户HCPL说的,但如果你不想担心库的版本,你可以这样做:

dependencies {
    compile(name:'mylibrary', ext:'aar')
}

因为每次都要更新版本有点烦人。此外,这样也可以更容易地避免担心名称空间的问题。

从本地构建中检索导出的.aar文件

如果你有一个模块被定义为一个android库项目,你将在该项目的build/outputs/aar/目录中获得所有构建风格(默认为调试和发布)的.aar文件。

your-library-project
    |- build
        |- outputs
            |- aar
                |- appframework-debug.aar
                 - appframework-release.aar

如果这些文件不存在,则启动生成

gradlew assemble

macOS用户

./gradlew assemble

图书馆计划详情

库项目有一个构建。包含apply plugin: com.android.library的Gradle文件。为了引用打包为.aar文件的这个库,您必须定义一些属性,如package和version。

构建示例。Gradle文件的库(这个例子包括混淆在发布):

apply plugin: 'com.android.library'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 21
        versionCode 1
        versionName "0.1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

在项目中引用.aar文件

在你的应用项目中,你可以将这个.aar文件放到libs文件夹中,并更新构建。Gradle文件引用这个库使用下面的例子:

apply plugin: 'com.android.application'

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs' //this way we can find the .aar file in libs folder
    }
}

android {
    compileSdkVersion 21
    buildToolsVersion "21.0.0"

    defaultConfig {

        minSdkVersion 14
        targetSdkVersion 20
        versionCode 4
        versionName "0.4.0"

        applicationId "yourdomain.yourpackage"
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
        }
    }
}

dependencies {
    compile 'be.hcpl.android.appframework:appframework:0.1.0@aar'
}

在gradle中引用本地依赖文件的其他选项可以在http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project上找到

使用maven共享依赖项

如果您需要在组织中共享这些.aar文件,请查看maven。关于这个主题的文章可以在https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive-library-aar-across上找到

关于.aar文件格式

aar文件只是一个.zip文件,它具有另一种扩展名和特定的内容。有关aar格式的详细信息,请查看此链接。

如果您已经正确地设置了发布,那么您可以运行这个命令来生成aar文件。

 ./gradlew publishReleasePublicationToMavenLocal 

这将在<module-dir>/build/output/aar目录内生成一个aar文件。

现在您也可以在其他本地项目中使用这个库。将此添加到您想要在其中使用此aar模块的项目gradle中

implementation fileTree(dir: '<location-to-library>/build/outputs/aar/', include: ['*.aar', '*.jar'], exclude: [])

最终在这里找到了解决方案- https://stackoverflow.com/a/49663101/9640177

实现文件(“libs / aar-file.aar”)

编辑 我有一个更复杂的问题——我为库模块设置了minifyEnabled为true。