Câu hỏi được gắn thẻ «java-native-interface»

Giao diện Java Native (JNI) cung cấp cả khả năng triển khai JVM để chạy mã gốc của hệ thống và khả năng cho mã gốc chạy mã Java (bằng cách tạo các phiên bản JVM mới). Các ngôn ngữ đích phổ biến nhất cho JNI là C và C ++, trong đó ít nhất các triển khai Sun / Oracle JDK cung cấp các lệnh trợ giúp (javap - để gỡ mã, javah để tạo mã c).








2
JNI chuyển đổi jstring thành char *
Tôi đã chuyển một chuỗi URL từ mã Java sang C làm jstringkiểu dữ liệu thông qua việc sử dụng JNI. Và phương thức thư viện của tôi cần một char *url dưới dạng. Tôi có thể chuyển đổi jstringbằng cách char *nào? PS: Có lợi thế nào khi sử …


15
tham chiếu không xác định đến `__android_log_print '
Có gì sai với tệp thực hiện của tôi? Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := foo LOCAL_SRC_FILES := foo.c LOCAL_EXPORT_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY) foo.c #include <string.h> #include <jni.h> #include <android/log.h> #define LOG_TAG "foo" #define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) void test() { LOGI("test"); } ndk-build foo.c:9: undefined …


4
Làm cách nào để bắt SIGSEGV (lỗi phân đoạn) và lấy dấu vết ngăn xếp trong JNI trên Android?
Tôi đang chuyển một dự án sang Bộ phát triển Android Native mới (tức là JNI) và tôi muốn bắt SIGSEGV, nếu nó xảy ra (có thể cả SIGILL, SIGABRT, SIGFPE) để trình bày một hộp thoại báo cáo sự cố đẹp mắt, thay vì (hoặc trước đó) những gì …




Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.