2012-11-19 51 views
4

我正在嘗試將Android SerialPort API集成到我的項目中,但是我遇到了一些問題。eclipse無法解析android本機代碼

  • Eclipse是不是解決所有JNI和本地相關的方法和領域。這是Android SerialPort API的SerialPort.c文件的開頭:

    #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) 
    

    我總是得到「沒有找到實現」 - 消息。

我必須首先要解決的問題之一,爲了對問題有兩種工作,因爲Eclipse不允許我開始我的項目,而不在代碼解決編譯錯誤。

回答

3

我重新安裝了我的java平臺,eclipse IDE,添加了android eclipse插件,現在它可以工作。我不知道爲什麼。

+0

這是最常見的方式讓日食再次工作,它真的很難過,我經常需要這麼做:( – martyglaubitz

+0

剛剛解決了同樣的問題,重新啓動。男孩我準備好Android Studio獲得NDK支持.. 。 – dbro