Android Studio 3.1로 업데이트 한 이후로 build과정중에 지원하지 않는 abi에 대한 빌드 에러가 발생한다.


org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':sample:transformNativeLibsWithStripDebugSymbolForNaverBetaDebug'.

Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'C:\Android\sdk\ndk-bundle\toolchains\mips64el-linux-android-4.9\prebuilt\windows-x86_64\bin\mips64el-linux-android-strip''


1.첫번째는 ndk 변경으로 인한 abi 지원 문제인데

AndroidStudio 3.1에서 지원하는 ndk의 최소 버전이 r17로 변경되었는데 r17부터는 armeabi을 지원하지 않는다. 

그래서 armeabi에 대한 abi를 제거해야 한다.


build.gradle

defaultConfig {

...

   ndk {

            abiFilter 'armeabi-v7a'

        }

}



2. 두번째는 제목과 같은 mips64el toolchain을 찾을수 없다는 에러가 발생하게 되는데 이건 정확한 문제 해결 방법을 모르겠다.

r16에 mips toolchain을 복사해서 해결한 경우도 있는데 이건 나중에 업데이트 할때 문제가 될수도 있을것 같아서 그냥 ndk만 r16으로 변경했다.

local.properties

ndk.dir=C\:\\Android\\ndk\\android-ndk-r16b


Happy Coding~:)

AndroidStudio 1.3 Preview에서 NDK를 지원한다고는 했는데 문서를 찾을수가 없어서 정리한 내용을 공유합니다.


ndk는 defaultConfig의 propery이며 ndk의 property는 아래와 같이 총 6개가 존재합니다.

  • abiFilters는 list형이며 해당하는 abi만 library가 생성됩니다. TARGET_ARCH_ABI
  • cFlags는 compiler flag로 기존 NDK의 LOCAL_CFLAGS / LOCAL_CPPFLAGS에 해당
  • ldLibs는 list형으로 링크할 라이브러리 목록을 지정합니다.
  • moduleName은 생성될 library의 이름입니다. 아래와 같이 jni로 설정하는 경우 libjni.so가 생성됩니다.
  • stl: 사용할 stl 종류를 지정합니다. 
    • system          -> Use the default minimal system C++ runtime library.
    • gabi++_static   -> Use the GAbi++ runtime as a static library.
    • gabi++_shared   -> Use the GAbi++ runtime as a shared library.
    • stlport_static  -> Use the STLport runtime as a static library.
    • stlport_shared  -> Use the STLport runtime as a shared library.
    • gnustl_static   -> Use the GNU STL as a static library.
    • gnustl_shared   -> Use the GNU STL as a shared library.
    •  



Happy Coding~:)

2015 Google I/O에서 AndroidStudio 1.3 Preview에 NDK를 지원한다고 발표했다.

What’s New in Android Development Tools 



https://youtu.be/f7ihSQ44WO0?t=1159



Canary channel에서 AndroidStudio를 다운로드 받아서 NDK가 어떻게 지원되는지 확인차 간단한 프로젝트를 생성해보았다.

http://developer.android.com/preview/download.html


일단은 정상적으로 빌드되고 apk에 포함되고 정상적으로 실행되는것까진 확인했지만, 동영상에서처럼 자동으로 jni signature를 생성해 준다거나 하는 기능은 확인해 보지 못했다.

__1.3Preview-NDK\capture02.png




__1.3Preview-NDK\capture02.png

Happy Coding~:)



+ Recent posts