我正在嘗試將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_DEBUG
和ANDROID_LOG_ERROR
與Symbol 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不允許我開始我的項目,而不在代碼解決編譯錯誤。
這是最常見的方式讓日食再次工作,它真的很難過,我經常需要這麼做:( – martyglaubitz
剛剛解決了同樣的問題,重新啓動。男孩我準備好Android Studio獲得NDK支持.. 。 – dbro