![](/img/trans.png)
[英]Android native library linking against another native library from aar
[英]Android Library AAR depending on another library
嗨我有一個Android庫項目,它生成一個AAR。
一切都很好但是當我在另一個項目中使用AAR時,我收到此錯誤:
java.lang.NoClassDefFoundError: com.squareup.picasso.Picasso
AAR使用畢加索,是否可以在生成AAR時導出AAR的依賴關系?
如何設置當地的maven回購。
警告:以下配方有效,但可能會使用改進,因為我遠非 Maven專家。 去年,我在我的CWAC庫中使用了這種方法。
步驟1:將classpath 'com.github.dcendents:android-maven-plugin:1.0'
到庫項目的build.gradle
文件中的buildscript
dependencies
塊。 還要添加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 gradle install
。 然后,您的應用程序項目將在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
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.