3

AAR ファイルとして共有したいライブラリ プロジェクトがあります。

このライブラリ プロジェクトにはいくつかの JAR ファイルが含まれており、そのうちのいくつかは私が作成し、ライブラリ プロジェクトで使用されているクラスです。たとえば、JAR ファイル内のクラスから継承する lib プロジェクトにクラスがあります。

AAR ファイルを作成できたので、Android Studio で作成したサンプル アプリで AAR ファイルをテストしています。

次のように、アプリ モジュールの build.gradle ファイルを変更する AAR ファイルを追加しました。

repositories {
    flatDir {
        dirs 'libs'
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile(name: 'mightylibrary', ext:'aar')
    compile 'com.android.support:appcompat-v7:20.+'
}

次に、親クラスのメソッドを使用しようとすると、子クラスに実装されたメソッドのみが表示されます。

AAR ファイル内にパッケージ化された JAR 内のクラスへのアクセスに関する既知の制限はありますか?

解決策はありますか?

ありがとう

4

1 に答える 1

3

だから私はこれを追加するのを逃したようです

repositories {
    jcenter()
    mavenLocal() // Missed this
}

プロジェクト(モジュールではない)build.gradleファイルでは、ローカルキャッシュリポジトリで検索されます。おかしいと思われるのは、「classes.jar」内のクラスが検出されたのに、AAR ファイルの「libs」フォルダー内の他の jar ファイルでは検出されなかった理由です。面白い...

于 2014-07-04T17:18:37.507 に答える