您好我有一个Android库项目,可以生成AAR。
一切都很好但是当我在另一个项目中使用AAR时,我收到了这个错误:
java.lang.NoClassDefFoundError: com.squareup.picasso.Picasso
AAR使用毕加索,是否可以在生成AAR时导出AAR的依赖关系?
答案 0 :(得分:6)
如何设置本地maven回购。
警告:以下方法有效,但可能会使用改进,因为我
步骤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
,版本号为X.Y.Z格式
name-of-library
将是包含Android库项目的目录名称(例如presentation
或foo
)