Tôi có ứng dụng đã xuất bản báo cáo sự cố java.lang.UnsatisfiedLinkError
trên một số thiết bị. Để được chính xác hơn, các tai nạn ứng dụng trên khởi động với thông điệp log sau:java.lang.UnsatisfiedLinkSự cố lỗi trên một số thiết bị
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load qcc: findLibrary returned null
Các crashing thực tế là trong hướng dẫn System.loadLibrary("qcc");
, vì vậy các ứng dụng đang không tìm thấy thư viện cho chắc chắn.
Vấn đề là tôi không thể tự mình tạo lại vấn đề. Trên thực tế, cùng một apk hoạt động hoàn hảo trên rất nhiều thiết bị và phiên bản khác nhau.
Ứng dụng sử dụng hai thư viện C được viết và biên soạn bởi người thứ ba. Họ đã được biên soạn bằng cách sử dụng arm-linux-androideabi-4.6
toolchain, và tôi đang tích hợp chúng trong dự án của tôi chạy nkd-build
với Android.mk
tập tin sau đây:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libqcc
LOCAL_SRC_FILES := qcc/libqcc.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libqpe
LOCAL_SRC_FILES := qpe/libqpe.so
include $(PREBUILT_SHARED_LIBRARY)
Các lỗi đã được báo cáo trên các thiết bị khác nhau, nhưng tất cả chúng vào lúc này là một của các phiên bản Android sau: 2.2, 2.2.1 hoặc 2.2.2.
Tôi nghĩ rằng đó có thể là vấn đề về kiến trúc hoặc sự cố lạ khi cài đặt.
Có ai biết vấn đề có thể là gì không?
UPDATE:
tôi nhận ra rằng tôi có thể tạo lại vấn đề trong 2.2 giả lập Android. Đây là thông tin bổ sung mà tôi có thể thu thập từ logcat.
11:14:59.962 I/dalvikvm( 287): Unable to dlopen(/data/data/.../lib/libqcc.so): Cannot load library: link_image[1995]: failed to link libqcc.so
11:14:59.962 W/dalvikvm( 287): Exception Ljava/lang/UnsatisfiedLinkError;
Có thể là vấn đề armeabi vs. armeabi-v7a. Xây dựng cho cả hai, chỉ trong trường hợp. –
Seva Alekseyev là đúng, có thể bạn có thể thử tạo một tệp Application.mk (nếu bạn chưa có) với dòng này: APP_ABI: = armeabi armeabi-v7a – Esparver