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_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)
"구현 없음"메시지가 항상 나타납니다.
나는 이클립스 날 코드에서 컴파일 오류를 해결하지 않고 내 프로젝트를 시작하는 것을 허용하지 않기 때문에, 문제는이 작업을하기 위해서는 먼저 문제를 해결해야합니다.
unfourtunaly thats 다시 일식을 얻는 가장 일반적인 방법, 그게 정말 슬픈 얼마나 자주해야합니까 : ( – martyglaubitz
그냥 다시 시작과 동일한 문제를 해결했습니다. 소년은 안드로이드 스튜디오 NDK 지원을받을 준비가되었습니다 .. . – dbro