package com.com.callmethodjni;
import android.os.Handler;
public class JNISignal {
static { System.loadLibrary("my_lib"); }
private static Handler mHandler;
private final static int SIGNAL1 = 1010;
private final static int SIGNAL2 = 1011;
public void setHandler(Handler handler) {
JNISignal.mHandler = handler;
}
public native void register_signal();
public static void getSignal1() {
mHandler.sendEmptyMessage(SIGNAL1);
}
public static void getSignal2() {
mHandler.sendEmptyMessage(SIGNAL2);
}
}JNI를 통해서 안드로이드에서 C로 코딩시킨 Signal을 등록하고(register_signal())
커널에서 해당 Signal1 or Signal2 가 발생할 경우에
JNISignal class의 getSignal1 or getSignal2 메서드를 호출하려고 합니다.
$ javac JNISignal.java
JNISignal.java:3: error: package android.os does not exist
import android.os.Handler;
^
JNISignal.java:10: error: cannot find symbol
private static Handler mHandler;
^
symbol: class Handler
location: class JNISignal
JNISignal.java:14: error: cannot find symbol
public void setHandler(Handler handler) {
^
symbol: class Handler
location: class JNISignal
3 errors
cygwin에서 javac JNISignal.java를 수행하게 될 경우에 위와 같이.
android관련된 부분이 애러로 처리 되는데 어떻게 해결해야 할지 모르겠습니다.
javac -classpath ~~~~/android.jar JNISignal.java 이런 방식으로 해봤는데 안되어서
혹시 도움 받을 수 있을까해서 질문글을 남깁니다.




아 결론은 javac 할려고 하는데 android 관련 패키지를 어떤식으로 링크시켜주는지 모르겠다 정도 겠네요 ㅠ