5

こんにちは、AAR を生成する Android ライブラリ プロジェクトがあります。

すべて問題ありませんが、別のプロジェクトで AAR を使用すると、次のエラーが発生します。

java.lang.NoClassDefFoundError: com.squareup.picasso.Picasso

AAR は picasso を利用します。AAR を生成するときに、AAR の依存関係もエクスポートできますか?

4

1 に答える 1

6

ローカルのMavenレポを設定するにはどうすればよいですか。

警告: 次のレシピは機能しますが、私はMaven の専門家とはほど遠いので、おそらく改善することができます。私は昨年、自分の CWAC ライブラリで使用するためにこのアプローチを打ち出しました。

ステップ #1:ライブラリ プロジェクトのファイルのブロックに追加classpath 'com.github.dcendents:android-maven-plugin:1.0'します。また、ステートメントを追加して、AAR に関する情報を提供します。buildscript dependenciesbuild.gradleversiongroup

ステップ 2: gradle installAAR をコンパイルし、デフォルトのローカル 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 installJAR をローカルの 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.0XYZ 形式のバージョン番号を持つ

  • name-of-libraryAndroid ライブラリ プロジェクトを含むディレクトリ名になります (例:presentationまたはfoo) 。

于 2014-04-13T17:17:38.883 に答える