gpt4 book ai didi

android - 无法在我的 Android 应用程序中获取我的库的传递依赖项

转载 作者:行者123 更新时间:2023-11-29 23:05:04 24 4
gpt4 key购买 nike

我在 Android studio 中创建了一个 Android 库,它有一些外部依赖项(例如 Retrofit)。但是当我尝试在 Android 应用程序中使用此库时,该应用程序不包含传递依赖项(库中包含的依赖项)。

我已经尝试将库发布到 Bintray,将 app-gradle 文件中的“implementation”关键字更改为“api”。我还尝试在我的应用程序的 gradle 文件中设置 transitive = true

当尝试构建 Android 应用程序时,它为我的库中使用的 CardView 显示 Resource Linking Failed

最佳答案

我在为 Android 构建库时遇到了同样的问题。我试图直接将 .aar 文件从 android studio 上传到 bintray。但很明显,它不包括 pom.xml 文件。所以我关注了this生成 zip 文件的教程。然后在 bintray 创建一个新版本,然后使用 UI upload 选项手动上传 zip 文件另外,不要忘记在上传时选中 explode this Archive 选项。然后,您可以发布库并将其与所有传递依赖项一起使用。这是一个示例 build.gradle 代码:

def version = 'your.version'
def localReleaseDest = "${buildDir}/release/${version}"
uploadArchives {
repositories.mavenDeployer {
pom.groupId = 'your.package.name'
pom.artifactId = 'yourModuleName'
pom.version = 'your.version'
// Add other pom properties here if you want (developer details / licenses)
repository(url: "file://${localReleaseDest}")
}
}

task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}

task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}

artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
task zipRelease(type: Zip) {
from localReleaseDest
destinationDir buildDir
archiveName "release-${version}.zip"
}

task generateRelease {
doLast {
println "Release ${version} can be found at ${localReleaseDest}/"
println "Release ${version} zipped can be found ${buildDir}/release-${version}.zip"
}
}

generateRelease.dependsOn(uploadArchives)
generateRelease.dependsOn(zipRelease)

根据需要修改此代码后,将其放在应用程序级 gradle 中的所有 block 之外。现在,在 Android studio 中同步项目并打开终端,并执行此命令:

./gradlew clean build generateRelease

这将在您的 app/build 目录中生成一个 .zip 文件,您可以像上面描述的那样将其上传到 bintray

关于android - 无法在我的 Android 应用程序中获取我的库的传递依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56647441/

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