2014-12-25 24 views
6

में एसटीएल के साथ एनडीके का उपयोग करना मुझे एंड्रॉइड स्टूडियो में ग्रेडल प्रोजेक्ट में स्टर्लपोर्ट जोड़ने में परेशानी है।एंड्रॉइड स्टूडियो ग्रेडल प्रोजेक्ट

एनडीके का उपयोग करने के साथ एक्लिप्स एंड्रॉइड प्रोजेक्ट एंड्रॉइड स्टूडियो में माइग्रेट करता है।

परियोजना एसटीएल का उपयोग करता है और मैं

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := MyProject 
LOCAL_SRC_FILES := jniapi.cpp renderer.cpp 
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM -ljnigraphics 

include $(BUILD_SHARED_LIBRARY) 

यह .mk फ़ाइल की अनदेखी करने के Gradle लगता है सामग्री के साथ android.mk फ़ाइल है, और मैं build.gradle फ़ाइल में folowing कोड कहा:

ndk { 
    moduleName "MyProject" 
    stl "stlport_shared" 
    ldLibs "log", "EGL", "android", "jnigraphics", "GLESv1_CM" 
    //No equivalent for the "include $(BUILD_SHARED_LIBRARY)" here 
} 
बाद

इस Gradle इमारत सफल हो गया है, लेकिन डिवाइस पर आवेदन चलाने में कोई त्रुटि का कारण बनता है:

27446-27446/com.example.test E/AndroidRuntime﹕ FATAL EXCEPTION: main 
java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libstlport_shared.so" needed by "libMyProject.so"; caused by load_library(linker.cpp:745): library "libstlport_shared.so" not found 
+0

http://ph0b.com/android-studio-gradle-and-ndk-integration/ साथ overide (NDK) प्लगइन पर अनुभाग पढ़ें अपनी खुद की 'Android.mk' –

उत्तर

3

यदि आप साझा संस्करण का उपयोग कर रहे हैं तो आपको अपने जावा कोड में मैन्युअल रूप से स्ट्लोर्ट साझा लाइब्रेरी को लोड करने की आवश्यकता है। आप साझा संस्करण की जरूरत नहीं है, यह निर्दिष्ट बजाय stlport_static:

ndk { 
    moduleName "MyProject" 
    stl "stlport_static" 
    ldLibs "log", "EGL", "android", "jnigraphics", "GLESv1_CM" 
    //No equivalent for the "include $(BUILD_SHARED_LIBRARY)" here 
} 
+0

आप कहाँ करना इसे डालें? आपके ऐप के build.gradle में –

+0

@ AndréFratelli। – Totoro

0

मुझे लगता है कि यह करने के लिए नए रास्ते, कुछ इस तरह अपने Application.mk में APP_STL उपयोग करने के लिए है:

APP_STL := c++_shared 
APP_ABI := armeabi-v7a 
NDK_TOOLCHAIN_VERSION := clang 

देखें यहाँ आधिकारिक दस्तावेज: https://developer.android.com/ndk/guides/application_mk.html

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