您好我有一个生成 AAR 的 Android 库项目。
一切都很好,但是当我在另一个项目中使用 AAR 时出现此错误:
java.lang.NoClassDefFoundError: com.squareup.picasso.Picasso
AAR 使用 picasso,是否可以在生成 AAR 时也导出 AAR 的依赖项?
您好我有一个生成 AAR 的 Android 库项目。
一切都很好,但是当我在另一个项目中使用 AAR 时出现此错误:
java.lang.NoClassDefFoundError: com.squareup.picasso.Picasso
AAR 使用 picasso,是否可以在生成 AAR 时也导出 AAR 的依赖项?
如何建立本地 Maven 存储库。
警告:以下配方有效,但可能需要改进,因为我远非Maven 专家。去年我敲定了这种方法,用于我的 CWAC 库。
第 1 步:添加classpath 'com.github.dcendents:android-maven-plugin:1.0'
到buildscript
dependencies
库项目build.gradle
文件中的块。还要添加version
和group
声明以提供有关您的 AAR 的信息。
步骤#2:gradle install
用于编译 AAR 并将其安装在默认的本地 Maven 存储库中。
第 3 步:通常,您将添加mavenLocal()
到dependencies
应用程序项目的块中,以通过其工件 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
带有 XYZ 格式的版本号
name-of-library
将是包含 Android 库项目的目录名称(例如,presentation
或foo
)