Android 스튜디오 1.0.1 & Gradle 1.0.0으로 작업 중입니다.Android Studio/Gradle - Flavor 특정 Jni 라이브러리 구성
동일한 이름 (동일한 진입 점, 내부 코드 만 다른)의 특정 JNI 라이브러리를 사용하려고합니다.
나는 "full-"과 "lite"라는 두 가지 맛을 가지고 있는데, 지금은 여전히 동일한 jni lib "my-lib.so"를 가리킨다.
app\
src\
main\
jniLibs\
armeabi-v7a\
my-lib.so
full\
lite\
내가 각각의 맛에 대해 서로 다른 "my-lib.so"lib 디렉토리를 갖고 싶어 :
나는 다음과 같은 프로젝트 트리가 있습니다. flavors 사이의 모든 변경 사항은 라이브러리 내부에 있습니다.
내가 좋아하는 뭔가를하려고 노력 :
app\
src\
main\
jniLibs\
armeabi-v7a\
my-lib.so
full\
jniLibs\
armeabi-v7a\
my-lib.so
lite\
jniLibs\
armeabi-v7a\
my-lib.so
을하지만 다음과 같은 오류 메시지가 발생합니다 : APK %의 경로 % \ 응용 프로그램 \ 구축 \ 출력 \ APK \의 포장 중 파일을 복제 :
오류 app-lite-debug-unaligned.apk 아카이브의 경로 : lib/armeabi-v7a/my-lib.so 원본 1 : % 경로 % \ app \ src \ main \ jniLibs \ armeabi-v7a \ my-lib.so 원본 2 : % 경로 % \ app \ src \ lite \ jniLibs \ armeabi-v7a \ my-lib.so
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "xxxxxxxxx"
minSdkVersion 15
targetSdkVersion 19
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
lite {
applicationId "xxxxxxxxxxLite"
minSdkVersion 16
targetSdkVersion 19
ndk {
abiFilter "armeabi-v7a"
}
}
full {
applicationId "xxxxxxxxxxxFull"
minSdkVersion 18
targetSdkVersion 19
ndk {
abiFilter "armeabi-v7a"
}
}
}
}
가 Gradle을 가진 가능한 이런 종류의 일이다 23,414,나는 다음과 같은 Gradle을 빌드있어? 중요한 것을 놓친 건가요? 당신은 main
에있는 파일과 동일합니다 (여기 full
및 lite
) 제품의 맛 디렉토리에있는 파일을 가질 수 없습니다