2011-03-06 15 views
20

द्वारा हटाए जाने से रोकें मेरे पास एक प्रोजेक्ट है जो मूल लाइब्रेरी (libocr.so) को पूर्व-संकलित कर रहा है और जिसके लिए मेरे पास स्रोत फ़ाइलें नहीं हैं। मैंने मैन्युअल रूप से पुस्तकालय को अपनी परियोजना के libs/armeabi पर रखा है और सब कुछ पूरी तरह से काम करता है।मैन्युअल रूप से जोड़े गए पुस्तकालयों को ndk-build

तब मुझे एक ही परियोजना में एक नई मूल पुस्तकालय बनाने की आवश्यकता थी। मैंने अपने स्रोत कोड को एंड्रॉइड.एमके फ़ाइल के रूप में अपने जेनी फ़ोल्डर में रखा है और मैं इसे ndk-buld कमांड के साथ बना देता हूं। लाइब्रेरी का निर्माण और libs/armeabi फ़ोल्डर में रखा गया है, लेकिन libocr.so (जिसे मैन्युअल रूप से जोड़ा गया है) स्वचालित रूप से वहां से हटा दिया जाता है ... मैं libocr.so को हटाए जाने से कैसे रोक सकता हूं? किसी भी मदद, लुका के लिए पहले से

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := libyuv 
LOCAL_SRC_FILES := ycrcbutils.c 

include $(BUILD_SHARED_LIBRARY) 

धन्यवाद:

यहाँ मेरी Android.mk फ़ाइल है।

उत्तर

26

... ठीक है मैं अपने आप को द्वारा जवाब मिला ... ndk/docs/PREBUILTS.HTML के अनुसार मैं अपने Android.mk इस तरह बदल दिया है:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_LDLIBS := -llog 

LOCAL_MODULE := libyuv 
LOCAL_SRC_FILES := ycrcbutils.c 

include $(BUILD_SHARED_LIBRARY) 


# Add prebuilt libocr 
include $(CLEAR_VARS) 

LOCAL_MODULE := libocr 
LOCAL_SRC_FILES := libocr.so 

include $(PREBUILT_SHARED_LIBRARY) 

और अपने प्रोजेक्ट की JNI फ़ोल्डर के अंतर्गत मेरी libocr.so की एक प्रति रखा ।

+12

TARGET_ARCH_ABI के वैकल्पिक उपयोग पर ध्यान दें, उदाहरण के लिए: LOCAL_SRC_FILES: = प्रीबिल्ट/$ (TARGET_ARCH_ABI) /libfoo.so – NateS

+0

@NateS मैं आपको बहुत प्यार करता हूँ। –

+0

@lviggiani मुझे समान समस्या का सामना करना पड़ रहा है और मेरे पास केवल इसलिए है। इसलिए फ़ाइल नहीं .cpp और जब मैं प्रोग्राम चलाता हूं तो यह त्रुटि रोक देता है – justchill

संबंधित मुद्दे