서적에 관한 질문 및 오류 등을 문의 할 수 있으며, 저자로부터 직접 답변을 받을 수 있습니다.

안녕하십니까?

 

<문의1>

안드로이드의 모든 것NDK (고현철,전호철 지음) 책을 보고, 43page의 상단 부분(Ant를 이용한 컴파일 부분)을 따라 해 보았습니다.

, 아래와 같이 책에 있는 명령어를 입력하니, error message가 발생합니다.

그 명령어와 message는 아래와 같습니다.

 

linuxjoa@linuxpc:~/ndk/android-ndk-r9/samples/hello-jni$ android update project -p, -s -t 9

android: command not found

 

아시겠지만, ‘android’라는 명령어(utility S/W)가 없다는 의미입니다.

android라는 명령어(utility S/W)는 처음 접해 봅니다.

아무튼, 이 명령어를 install하기 위해서는 어떻게 해야 하나요 ?

만약, 위의 문제점이 아니라면, 어떻게 하면 해결할 수가 있는지요 ?

 

 

<문의2>

안드로이드의 모든 것NDK (고현철,전호철 지음) 책을 보고, 88 page 하단 부분(= 3.6. x86에서 JNI 실습)을 따라 해 보았습니다.

, 아래와 같이 책에 있는 명령어를 입력하니, error message가 발생합니다.

그 명령어와 message는 아래와 같습니다.

 

linuxjoa@linuxpc :~/jni_ex$ java kr.or.aesop.HelloWorld

Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/linuxjoa/jni_ex/helloworld.so: /home/ linuxjoac/jni_ex/hello            world.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)

        at java.lang.ClassLoader$NativeLibrary.load(Native Method)

        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)

        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1699)

        at java.lang.Runtime.load0(Runtime.java:770)

        at java.lang.System.load(System.java:1003)

        at kr.or.aesop.HelloWorld.<clinit>(HelloWorld.java:7)

Could not find the main class: kr.or.aesop.HelloWorld.  Program will exit.

 

이 부분은 32BIT, 64BIT와 관련이 있는 것 같은데, 인터넷을 찾아서 나름대로 문제해결을 시도해 보았으나,

해결하지 못해서 도움을 요청드립니다.

 


전호철

2013.10.02 22:16:08
*.162.60.1

1번 문제의 android 라는 것은 

Android sdk 의 android 를 실행하게 되어 있습니다. 그래서 sdk 를 설치하고 android sdk를 설치하신 후 tools 디렉토리를 path에 등록해주시면 되겠습니다.


2번은 저도 처음 보는 문제라 검색을 좀 해봤는데

http://stackoverflow.com/questions/8991128/eclipse-jni-shared-library-architecture-word-width-mismatch-wrong-elf-class-un

사용중이신 JRE 와 gcc를 같은bit로 맞춰서 하시면 될것같네요.

gcc로 컴파일 하실때 '-m32' or '-m64' 옵션을 주면 됩니다. 두개 다 해보시면 하나는 돌아가지 않을까... 싶습니다.


이 문제에 대해서 제가 따로 테스트를 해보지는 못했습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인