2

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에있는 파일과 동일합니다 (여기 fulllite) 제품의 맛 디렉토리에있는 파일을 가질 수 없습니다

답변

1

:-) 도와 감사합니다.

Si 파일을 삭제하려면 main에서 파일을 삭제해야합니다.