2012-11-19 4 views
4

Android SerialPort API을 내 프로젝트에 통합하려고하는데, 그렇게하는 데 몇 가지 문제가 있습니다.이클립스는 안드로이드 네이티브 코드를 해결할 수 없습니다

  • 이클립스이이 (가) Android SerialPort API의 SerialPort.c 파일의 시작입니다 .. 모든 JNI 네이티브 관련 메소드와 필드 해결되지 않습니다

    #include <termios.h> 
    #include <unistd.h> 
    #include <sys/types.h> 
    #include <sys/stat.h> 
    #include <fcntl.h> 
    #include <string.h> 
    #include <jni.h> 
    
    #include "SerialPort.h" 
    
    #include "android/log.h" 
    static const char *TAG="serial_port"; 
    #define LOGI(fmt, args...) __android_log_print(ANDROID_LOG_INFO, TAG, fmt, ##args) 
    #define LOGD(fmt, args...) __android_log_print(ANDROID_LOG_DEBUG, TAG, fmt, ##args) 
    #define LOGE(fmt, args...) __android_log_print(ANDROID_LOG_ERROR, TAG, fmt, ##args) 
    

    주먹 정의 문이 작동하지만, 다른 두 가지에서 일식 ANDROID_LOG_DEBUGANDROID_LOG_ERRORSymbol XXX could not be resolved,뿐만 아니라 JNIEnv *env 방법의 모든 호출을 직렬 포트의 방법 안에 표시입니다.

    그러나 JNIEXPORT 또는 JNICALL 문에는 오류가 없습니다.

  • 이 문제를 해결할 때 문제가 하나 생겼습니다. 나는 도서관을위한 모든 파일을 다운로드하고 웹 사이트에 주어진 전화 번호부에서 그 (것)들을 베끼었다. 그러나 JNI 부분에 문제가 발생하여 open()에 전화하여 직렬 장치를 가져올 수 없습니다.

    11-19 14:18:22.232: D/dalvikvm(17898): Trying to load lib /data/data/master.androidsirfparser/lib/libserial_port.so 0x416a8570 
    11-19 14:18:22.232: D/dalvikvm(17898): Added shared lib /data/data/master.androidsirfparser/lib/libserial_port.so 0x416a8570 
    11-19 14:18:22.232: D/dalvikvm(17898): No JNI_OnLoad found in /data/data/master.androidsirfparser/lib/libserial_port.so 0x416a8570, skipping init 
    11-19 14:18:22.232: W/dalvikvm(17898): No implementation found for native Lmaster/serial/SerialPort;.open (Ljava/lang/String;II)Ljava/io/FileDescriptor; 
    11-19 14:18:22.240: W/dalvikvm(17898): threadid=11: thread exiting with uncaught exception (group=0x40a471f8) 
    11-19 14:18:22.240: E/AndroidRuntime(17898): FATAL EXCEPTION: Thread-651 
    11-19 14:18:22.240: E/AndroidRuntime(17898): java.lang.UnsatisfiedLinkError: open 
    11-19 14:18:22.240: E/AndroidRuntime(17898): at master.serial.SerialPort.open(Native Method) 
    11-19 14:18:22.240: E/AndroidRuntime(17898): at master.serial.SerialPort.<init>(SerialPort.java:61) 
    11-19 14:18:22.240: E/AndroidRuntime(17898): at master.androidsirfparser.ReadThread.init(ReadThread.java:38) 
    11-19 14:18:22.240: E/AndroidRuntime(17898): at master.androidsirfparser.ReadThread.run(ReadThread.java:48) 
    

    "구현 없음"메시지가 항상 나타납니다.

나는 이클립스 날 코드에서 컴파일 오류를 해결하지 않고 내 프로젝트를 시작하는 것을 허용하지 않기 때문에, 문제는이 작업을하기 위해서는 먼저 문제를 해결해야합니다.

답변

3

Java Plug-in, Eclipse IDE를 다시 설치하고 Android eclipse 플러그인을 추가하면 작동합니다. 나는 이유가 없다.

+0

unfourtunaly thats 다시 일식을 얻는 가장 일반적인 방법, 그게 정말 슬픈 얼마나 자주해야합니까 : ( – martyglaubitz

+0

그냥 다시 시작과 동일한 문제를 해결했습니다. 소년은 안드로이드 스튜디오 NDK 지원을받을 준비가되었습니다 .. . – dbro

관련 문제