gpt4 book ai didi

android studio 源码本地aar分享

转载 作者:行者123 更新时间:2023-11-29 01:35:35 33 4
gpt4 key购买 nike

我想通过 aar 在不同的项目之间共享我的源代码。当前版本的 Android Studio 可以为库模块自动生成 aar 文件。但我有几个问题:

  1. 如何将aar文件输出到指定文件夹?

当前输出在 build/outputs/aar 文件夹中。我可以在编译完成后自动移动文件吗?

  1. 库模块中的依赖项不被应用模块继承。例如:

我的库模块(build.gradle):

apply plugin: 'com.android.library'
......
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.google.code.gson:gson:2.2.4'
}

我的应用模块:

apply plugin: 'com.android.application'

repositories {
mavenCentral()
flatDir {
dirs 'myaarfolder'
}
}

android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
applicationId "com.company.appid"
minSdkVersion 8
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile(name:'mylib-release', ext:'aar')
}

我收到类似这样的错误:

Error:(3, 35) Error: Package com.google.gson.annotations not exist

我必须在我的应用模块 (build.gradle) 的依赖项中添加 compile 'com.google.code.gson:gson:2.2.4'

有什么想法吗?谢谢

最佳答案

AAR 文件没有内置依赖项,因此如果您像这样包含一个裸 AAR,则需要在父模块中手动添加依赖项。要执行您想要的操作,您需要将 AAR 打包到 Maven Artifact 中并在 POM 中指定其依赖项。快速搜索 Google 会显示此链接,它看起来像是旧版本的 Android Gradle 插件,但它可能会让你继续下去,或者你可以自己搜索更好的资源:

http://www.vandalsoftware.com/post/52468430435/publishing-an-android-library-aar-to-a-maven

如果你想操作你的输出文件,你可以从这个重命名输出的问题中获得灵感:

Could not find property 'outputFile' on com.android.build.gradle.internal.api.ApplicationVariantImpl

本质上它涉及一个看起来像这样的构建脚本 block :

applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(output.outputFile.parent, /* calculate new path here */)
}
}

关于android studio 源码本地aar分享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28339817/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com