gpt4 book ai didi

java - Android 库 AAR 依赖于另一个库

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:31:51 29 4
gpt4 key购买 nike

您好,我有一个生成 AAR 的 Android 库项目。

一切都很好,但是当我在另一个项目中使用 AAR 时,出现此错误:

java.lang.NoClassDefFoundError: com.squareup.picasso.Picasso

AAR使用了picasso,是否可以在生成AAR时也导出AAR的依赖?

最佳答案

How can one go about setting up a local maven repo.

警告:以下方法有效,但可能需要改进,因为我不是 Maven 专家。我去年敲定了这种方法用于我的 CWAC 库。

第 1 步:将 classpath 'com.github.dcendents:android-maven-plugin:1.0' 添加到您的 buildscript dependencies block 在您的库项目的 build.gradle 文件中。还要添加 versiongroup 语句以提供有关您的 AAR 的信息。

第 2 步:使用 gradle install 编译 AAR 并将其安装在默认的本地 Maven 存储库中。

第 3 步:通常,您会将 mavenLocal() 添加到应用程序项目的 dependencies block 中,以通过其 Artifact ID 获取 AAR。这可能会再次起作用,尽管它被打破了一点。相反,使用 maven { url "${System.env.HOME}/.m2/repository"} 作为短期解决方法。

因此,例如,您的库项目 build.gradle 文件可能包含:

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
classpath 'com.github.dcendents:android-maven-plugin:1.0'
}
}

apply plugin: 'android-library'
apply plugin: 'android-maven'

version '0.4.0'
group 'some.likely.group.name.goes.here'

repositories {
mavenCentral()
}

dependencies {
compile 'com.squareup.picasso:picasso:2.2.0'
compile fileTree(dir: 'libs', include: '*.jar')
}

android {
// as normal
}

您将使用 gradle install 将 JAR 发布到本地 Maven 存储库。然后,您的应用程序项目将在其 build.gradle 中包含以下内容:

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}

apply plugin: 'android'

repositories {
mavenCentral()
maven { url "${System.env.HOME}/.m2/repository" } // mavenLocal()
}

dependencies {
compile 'some.likely.group.name.goes.here:name-of-library:0.4.0'
}

android {
// as normal
}

替换位置:

  • some.likely.group.name.goes.here 有东西

  • 0.4.0 带有 X.Y.Z 格式的版本号

  • name-of-library 将是包含 Android 库项目的目录名称(例如,presentationfoo)

关于java - Android 库 AAR 依赖于另一个库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23042803/

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