मेरे पास एक प्रकाशित एप्लिकेशन है जो कुछ उपकरणों पर java.lang.UnsatisfiedLinkError
क्रैश की रिपोर्ट कर रहा है। अधिक सटीक होना, पर ऐप्लिकेशन क्रैश निम्नलिखित लॉग संदेश के साथ शुरू:java.lang.UnsatisfiedLink कुछ डिवाइसों पर क्रैश त्रुटि
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load qcc: findLibrary returned null
वास्तविक क्रैश होने, System.loadLibrary("qcc");
अनुदेश में है, इसलिए एप्लिकेशन पक्का पुस्तकालय नहीं मिल रहा है।
समस्या यह है कि मैं स्वयं को इस मुद्दे को पुन: उत्पन्न करने में सक्षम नहीं हूं। असल में एक ही एपीके कई अलग-अलग उपकरणों और संस्करणों पर पूरी तरह से काम करता है।
ऐप दो सी पुस्तकालयों का उपयोग करता है जो किसी तीसरे व्यक्ति द्वारा लिखे और संकलित किए जाते हैं। वे arm-linux-androideabi-4.6
toolchain का उपयोग कर संकलित किया गया है, और मैं निम्नलिखित Android.mk
फ़ाइल के साथ अपने प्रोजेक्ट चल रहा है nkd-build
में उन्हें एकीकृत कर रहा:
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)
त्रुटि विभिन्न उपकरणों पर सूचना दी जा रही है, लेकिन इस समय उन सभी को एक हैं निम्न एंड्रॉइड संस्करणों में से: 2.2, 2.2.1 या 2.2.2।
मुझे लगता है कि यह या तो स्थापना के दौरान एक आर्किटेक्चर समस्या या अजीब समस्या हो सकती है।
क्या किसी को पता है कि समस्या क्या हो सकती है?
अद्यतन:
मुझे एहसास हुआ कि मैं एक Android 2.2 एमुलेटर में समस्या को पुन: हो सकता है। यह अतिरिक्त जानकारी है जिसे मैं लॉगकैट से इकट्ठा कर सकता हूं।
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;
armeabi बनाम armeabi-v7a मुद्दा हो सकता है। बस मामले में, दोनों के लिए बनाएँ। –
सेवा Alekseyev सही है, हो सकता है कि आप इस लाइन के साथ एक application.mk फ़ाइल (यदि आपके पास अभी तक नहीं है) बनाने का प्रयास कर सकते हैं: APP_ABI: = armeabi armeabi-v7a – Esparver