2012-11-19 48 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