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

안녕하세요

안드로이드를 처음사용하다 보니 질문에 두서가 없더라도 이해해주시길 바랍니다.

 

======== C파일 ==========

funccb = (*env)->GetMethodID(env, cls, "notifyNtscCamera", "(Ljava/lang/String;II)V");

(*env)->CallVoidMethod(env, obj, funccb, (*env)->NewStringUTF(env, buf), 100, 1);

 

======== Java 파일 ==========

public void notifyNtscCamera(String s, int msg, int isSuccess) {

Log.d("Callback", "MSG: " + msg + ", " + isSuccess);

}

이렇게 사용하면 callback함수가 호출됩니다.

 

그러나 GetStaticMethodID(), CallStaticVoidMethod()를 호출하면 (Java는 public static void notifyNtscCamera()으로 변경)

callback 함수가 호출되지 않네요

 

static으로 callback함수 호출할때 String으로는 전달이 안되는것인지, 여러개의 인자를 전달이 안되는것인지 잘 모르겠네요

굳이 static을 사용하지 않아도 되나 현재 native thread 예제를 참고하여 작업을 하고 있는데 동작이 안되서 질문드립니다.

static을 사용 안하면 init하는 함수에는 callback이 되나 native thread에서 callback을 호출하면 아래와 같은 메세지가 나오고 죽네요.

 

07-27 18:30:43.664: W/dalvikvm(4387): JNI WARNING: can't call Lcom/zeronex/tcamera/NtscCamera;.notifyNtscCamera on instance of Ljava/lang/Class;
07-27 18:30:43.664: I/dalvikvm(4387): "Thread-10" prio=5 tid=9 RUNNABLE
07-27 18:30:43.664: I/dalvikvm(4387):   | group="main" sCount=0 dsCount=0 obj=0x406b44d8 self=0x20cbe0
07-27 18:30:43.664: I/dalvikvm(4387):   | sysTid=4414 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=2148752
07-27 18:30:43.664: I/dalvikvm(4387):   at dalvik.system.NativeStart.run(Native Method)
07-27 18:30:43.664: E/dalvikvm(4387): VM aborting

 

-------------------------  추가 정보 ----------------------

android 2.3.3을 사용하고 CPU는 TI AM3505입니다.

안드로이드 카메라를 enable하려 했는데 이부분이 잘 안되서 시간 관계상 V4L2 API로 overlay로 camera display중입니다.

NDK r8b를 다운받아서 ../../ndk-build시 에러가 납니다. (V4L2_CID_ROTATE가 없음)

rowboat-android/bionic/libc/include에는 V4L2_CID_ROTATE가 있어서

현재는 rowboat-android/hardware/ti/omap3/ntsc directory에서 .so파일을 생성하고 있습니다. (사실 NDK의 stdinc와 arm-eabi-gcc의 stdinc부분이 이해가 잘 안되긴합니다 ^^;)

 

 


전호철

2012.10.18 23:19:14
*.200.239.210

static 을 사용함으로써 참조 경로가 바뀌는것인지.... @_@


일단  GetStaticMethodID(), CallStaticVoidMethod() 은 제대로 하신게 맞습니다.


funccb의 NULL 체킹을 해보시구요. 제대로 못가져왔다면 cls가 제대로 불러와지지 못했을 수도 있습니다.

FindClass 를 사용해서 class 를 가져오셔야 할수도 있을 것 같네요.

심심해

2012.10.19 01:54:08
*.50.24.13

답변 감사합니다.

책에 있는 네이티브 쓰레드로 자바 콜백하기를 해봤는데도 잘 안되네요. 타이핑을 잘못했나? ㅠ.ㅠ

 

혹시 책에 있는 예제 소스를 다운 받아 볼 수는 없을까요?

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
43 surfaceflinger에서 화면을 dump뜨는 메카니즘에 대해서... 김바람 2013-08-19 5134
42 NDK 개발 환경 설정하기에서 문제입니다. file [2] 프리월드 2012-09-19 5163
41 repo 설정 시에 문제가 발생합니다. [5] 죽유 2012-12-19 5253
40 여러 분들이 말씀하신 것처럼 책(NDK)의 예제코드를 올려주실 수 없... [2] 트론 2013-08-24 5255
39 NDK 컴파일이 안됩니다. file [8] 더페이퍼 2012-09-25 5335
38 apk uploading timeout에 대해 문의 드립니다. [2] 죽유 2013-01-10 5374
37 카메라로부터 프래임 데이터 추출하는 예제 입니다. file [1] 죽유 2013-01-24 5383
36 NEON관련 좋은 참고 문서가 있을까요? [7] 죽유 2013-01-10 5392
35 안드로이드의 모든 것NDK (고현철,전호철 지음) 책 실습 중 문제에... [1] 어떤이의꿈 2013-10-02 5398
34 OpenGL 책p168 예제 질문드립니다. Android홀릭 2013-02-06 5413
33 init: sys_prop: unable to stop service ctl [DVBService] ... [2] 제임스59 2013-09-22 5480
32 책에서 사용하고 있는 ffmpeg 소스. file [1] 전호철 2012-11-09 5496
31 책을 보다 몇가지 질문이 생겼습니다. [6] 더페이퍼 2012-09-18 5527
30 드디어 안드로이드 소스까지 컴파일했습니다. [3] 죽유 2012-12-22 5548
29 NDK 책내용중에 3.11 외부 라이브러리 활용하기 에서 질문 드립니... file [5] 엽스 2013-08-30 5590
28 [예제12.SDL] Android 에서 SDL 사용하는 예제 실행 안됨 문의... [7] 둘리 2013-03-12 5609
27 네이티브 스레드로 자바 콜백 만들기 질문드립니다. [2] 조재영 2013-02-14 5661
26 [압축된 07-TestSkia 예제파일 올려주세요] [1] 밥줘잉 2013-05-23 5664
25 hoffplay 컴파일 질문 입니다. [2] 여월광 2014-03-03 5690
24 261페이지 맨 아랫줄에 대해 문의드립니다. [2] binch 2012-07-18 5747

사용자 로그인