你好,我有一个Android Library项目,它生成了一个AAR文件。
一切都很好,但是当我在另一个项目中使用这个AAR时,我会遇到这个错误:
java.lang.NoClassDefFoundError: com.squareup.picasso.Picasso
生成AAR时,AAR使用了Picasso,是否可以同时导出AAR的依赖项?
你好,我有一个Android Library项目,它生成了一个AAR文件。
一切都很好,但是当我在另一个项目中使用这个AAR时,我会遇到这个错误:
java.lang.NoClassDefFoundError: com.squareup.picasso.Picasso
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
)
gradle install
?我在Windows上安装了Java的gradle,并尝试运行 gradle install
,但是出现了以下错误:Task 'install' not found in root project 'bin'.
- William Kinaanmaven
插件及其uploadArchives
任务可以很好地与现代版本的Android Studio/Android Plugin for Gradle配合使用。 - CommonsWare
repositories { flatDir { dirs 'libs' } mavenCentral() }
然后使用通常的groupId格式将它们包含进来。 - redDragonzzflatDir
。我将我的 AAR 发布到本地 Maven 仓库,并从那里解析依赖项,没有任何问题。 - CommonsWareflatDir
和纯远程依赖项。那么如何设置本地Maven仓库呢? - redDragonzz