1. bash 혹은 g++을 찾을 수 없는 경우

cygwin 혹은 minGW 무엇을 사용하든, bin 폴더 내에 bash 혹은 g++ 파일이 들어있어야 한다.


참고로 cygwin의 경우 초기에 설치하면서 devel(정확히는 기억이 안나지만) 옵션을 default가 아닌 install로 명시해서


설치해야 한다.



2. ndk 5버전과 관련해서


ndk 설치 과정을 설명하는 외국 사이트에서 ndk5버전을 가지고 설명하길래, ndk5 버전을 따라 설치했는데, 설치된


ndk 폴더 내에서 cmd로 ndk-build를 해도 파일을 찾을 수 없다고 나오는 것이었다. 신기한건, 7버전이나 9버전을


설치하니 이러한 문제가 해결된 것. 혹시 모르니 ndk 폴더 내에서 ndk-build 명령이 제대로 먹히는지 확인해보자.



3. JNICALL이나 JNIEnv, jobject, jstring 등을 찾을 수 없는 경우 (could not be resolved~~)


이 경우에는 project -> properties -> C/C++ General --> Paths and Symbols에서 GNU C 에다가,


ndk폴더경로\platforms\android-9\arch-arm\usr\include 를 넣어준다. cpp 파일을 사용하면 아마도 GNU


C++에다가도 추가를 해주어야 할 것이다(확실히는 모르겠다)



4. ndk-build를 찾을 수 없는 경우


관련 내용 : http://huammmm1.tistory.com/386


이 경우 ndk-build의 위치를 PATH 환경 변수에 등록했음에도 불구하고 이러한 문제가 생길 수 있다.


윈도우즈 환경에서는 ndk-build.cmd 라고 바꾸었을 때 동작되는지 확인해보자. 참고로 ndk-build.cmd로 빌드시


so파일이 제대로 생성되지 않고 예를 들어 cygwin에서 사용하는 패스는 이건데 DOS상의 패스를 사용해서~ 등의


warning이 발생할 시 ndk-build.cmd -B SHELL=cmd 라고 뒤에 추가로 옵션을 주어서 빌드를 해본다.



5. 라이브러리파일이 만들어졌는데 앱이 실행되지 않고 멈추는 경우 (unfortunately has stopped~~)


관련 내용 : http://huammmm1.tistory.com/386


먼저 so파일이 libs폴더의 armeabi 폴더 내에 제대로 만들어져 있는지 확인한 후, native method의 구현부가 있는


c파일(혹은 c++)에서 함수의 네이밍을 정확히 명시해주었는지 확인해보자. 내가 4번에 해당되는 케이스였는데,


네이티브 메소드의 함수 네이밍을 샘플 코드에서 그대로 가져온걸 썼다가 이 문제가 발생했다.





Posted by huammmm1
,