簡體   English   中英

Android庫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塊。 還要添加versiongroup語句以提供有關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庫項目的目錄名稱(例如, presentationfoo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM