別のaarおよびjarファイルの依存関係を使用してAARファイルを作成しています。 .aarリリースファイルを正常に作成しました。
次に、新しいAARファイルをサンプルプロジェクトにインポートしました。プロジェクトは正常に実行されています。 aarクラスとjarクラスが意味するものにアクセスしようとすると、NoClassDefFoundエラーが表示されます。
注:最初に知りたいのは、現時点では、別のAAR内のAARが可能かどうかです。誰かが私がこの新しい問題から抜け出すのを手伝ってくれる?
このリンクも参照しました 複数のAAR/JARでAARを作成します 。それは推移的=真と言っています。しかし、そのフラグをどこで使用するかはわかりません。アプリケーションを使用しているサードパーティ、またはAARプロジェクトの依存関係内でAARを作成しているとき。
アドバンスに感謝します。
私のミニプロジェクトGradleファイル:
.AARファイルにのみ変換するミニプロジェクト。次に、このファイルは別のNewProjectのみを使用します
ミニプロジェクトBuild.gradleファイル
/*
This would be enabled for development purpose and to debug and check the same
*/
apply plugin: 'com.Android.application'
/*
This would be enabled for exporting as aar file
apply plugin: 'com.Android.library'
*/
//apply plugin: 'com.Android.library'
Android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
dexOptions {
javaMaxHeapSize "4g"
preDexLibraries = false
}
defaultConfig {
/*
This application id would be used for development purpose and to debug and check the same.
This would be commented when exporting as library
*/
applicationId 'com.pss.pssplayer'
minSdkVersion 18
targetSdkVersion 23
multiDexEnabled true
versionCode 1
versionName "1.0"
}
aaptOptions {
cruncherEnabled = false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'),
'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:23.1.1'
compile 'com.Android.support:support-v4:23.1.1'
compile files('libs/ksoap2-Android-Assembly-3.2.0-jar-with-dependencies.jar')
compile files('libs/secure.jar')
compile(project(':getSubProject')) {
transitive = true
}// this getSubProject also contains one classes jar
}
Android-fat-aar gradleプラグインを使用すると、非常に便利です。
依存関係でaarとjarを参照する場合、最初のaarを参照して新しいaarをコンパイルできます。
しかし、それらはあなたのaarに埋め込まれていません。代わりに、「big aar」を使用するアプリケーションも、最初の2つに依存する必要があります。
そのために、「大きなaar」が最初の2つに依存していることをmavenに伝えることで、すべてのaarをmavenのようなリポジトリにデプロイできます。 (-> pom.xml)
アプリケーションのbuild.gradleファイルでは、transitive=true
を使用して「bigaar」にのみ依存関係を追加し、依存関係の依存関係を確認するようにシステムに指示できます。
編集:
少なくともjarをマージできます。これらの答えを見てください:
gradle-他のjarを含むlib dirを含むjarを作成するにはどうすればよいですか?
Gradleは複数のプロジェクトを1つのjarにjarできますか?
すべてのリソース、マニフェストなどをマージする必要があるため、aarのマージはより困難です...