나는 6 개에서 최신 14 개까지 (네이티브 코드의 빌드를 테스트하기 위해) 시작하는 많은 안드로이드 NDK 개정판을 가지고있다. 저장 공간을 절약하기 위해 나는 툴체인을 ./toolchains/
(안드로이드 ndk 10c에서 더 자세히)에서 삭제했습니다. 확실히 필요하지 않습니다.Android NDK에서 툴체인을 제거하는 방법은 무엇입니까?
지금하는 동안 다음과 같은 오류를 받고 있어요 Gradle을 가진 라이브러리 코드를 구축을 위해 노력 :
No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android
Application.mk
에 난 단지 armeabi-v7
및 x86
이 있지만 : build.gradle
에서
APP_ABI := armeabi-v7a x86
를 내가 가지고 :
android {
compileSdkVersion 16
buildToolsVersion "25.0.0"
defaultConfig {
...
ndk {
abiFilters 'armeabi-v7a', 'x86'
}
}
externalNativeBuild {
ndkBuild {
path 'jni/Android.mk'
}
}
...
}
어떻게 불필요한 툴체인을 적절하게 삭제할 수 있습니까?
이전 NDK 릴리스에서 코드의 빌드 가능성을 테스트하는 것은 가치가없는 것으로 보입니다. NDK 릴리스는 구형 플랫폼과의 하위 호환성을 유지합니다 (현재 베타 버전 인 r15만이 android-9를 떨어 뜨렸고, android-14로 최소로 이동하여 5 월 2 일에도 여전히 활성화 된 장치의 99 %를 차지함). 어쨌든, 귀하의 gradle 통합은 하나의 NDK 개정판에서만 작동합니다. 최근 버전을 유지하고이 개정판의 모든 툴 체인을 보관하십시오. –
이것은 100 %가 아닙니다. 예 : V8에는 특정 버전의 toolchain이 필요합니다.이 버전은 최신 버전에만 없습니다. 또한 연결에 몇 가지 중요한 변화가 있습니다. 10e와 11 사이의 차이가 있습니다 ('libC++의 인라인 네임 스페이스가 std :: __ ndk1로 변경되어 플랫폼 libC++에서 ODR 문제가 발생하지 않도록 변경됨). 그러면 라이브러리가 10e와 연결될 수 있지만 11과 함께 연결될 수 없습니다. – 4ntoine
왜 그럴 가치가 있습니까? NDK 10e에서 코드 컴파일을 보장하려면? –