私のAndroidアプリケーションでは、私は2つのaarライブラリで作業しています。わかりやすくするために、cat.aar
& fish.aar
という名前にしてください。Android build.gradleファイルの.soファイルのアクセシビリティを変更するにはどうすればよいですか?
cat.aar
は64ビットをサポートします。それにはarmeabi-v7a & arm64-v8a関連の.so
ファイルがあります。 cat aarライブラリには.so
のファイルが含まれていません。アプリケーションjniLibsの下に配置する必要があります。
fish.aar
は64ビットを明示的にサポートしていません。それはarmeabiとarmeabi-v7aに関連するファイルのみを持っています。.so
魚のaar図書館には、.so
のファイルもあります。
私の問題
私は私のアプリでは、独立して、猫や魚AARを使用することができていますし、私のアプリは、32ビットおよび64ビットのデバイス上で罰金を実行されています。
私は猫&魚のAARとアプリケーションjniLibsフォルダの下に、魚のLIBは、アプリケーションjniLibsフォルダの下ではなく、独自のAARにその.so
ファイルにアクセスしようとしているのlib猫に関連.so
ファイルの両方が含まれます。結果として、私がfish lib apiを呼び出すたびに、libsのエラー.so file not found
でAppがクラッシュします。一方、cat lib apiのみを使用し、fish libは使用しない限り、appは正常に動作します。
私のbuild.gradleファイルは下記を参照してください。 build.gradleで何をする必要があるのか教えてください。私のアプリでcat & fish aarの両方を使用できるようにしてください。
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion '24.0.3'
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
defaultConfig {
applicationId "com.samples.fish.fishexplore"
minSdkVersion 21
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
repositories {
flatDir {
dirs 'libs'
}
}
compile(name: 'cat', ext: 'aar')
compile(name: 'fish', ext: 'aar')
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support:support-annotations:25.1.1'
compile 'com.android.support:appcompat-v7:25.1.1'
}
apkを解凍してディレクトリsturctureにこれらのライブラリの内容を貼り付けますか? –