2011-09-17 9 views
6

मैं यहां दीवार से अपने सिर को टक्कर लगी शुरू करने के लिए तैयार हूं। मैंने इस मुद्दे के बारे में हर एसओ थ्रेड को पढ़ा है, इस मुद्दे पर हर एक Google परिणाम पढ़ा है और स्क्वाट नहीं मिल सकता है। मैं एक एंड्रॉइड ऐप बना रहा हूं जहां मैंने सी ++ में 2 डी इंजन लिखा है और मैं एनडीके आर 6 बी के साथ स्ट्लपोर्ट के साझा संस्करण का उपयोग कर रहा हूं। Libstlport_shared के लिए .so फ़ाइल जेनरेट की गई है और मेरे libs फ़ोल्डर में सफलतापूर्वक कॉपी की गई है। मैंने डिवाइस पर एडीबी खोल का उपयोग करके भी जांच की है और .so फ़ाइल सही ढंग से कॉपी की गई है।libstlport_shared को लिंक करने में विफल, भले ही यह मौजूद है ...?

मैं ऐसे मेरी .mk फ़ाइल को संशोधित करने के स्पष्ट रूप से एक आवश्यक मॉड्यूल के रूप में libstlport_shared.so घोषित करने के लिए के रूप में विभिन्न समाधान, की कोशिश की। संकलन समय के दौरान सब कुछ बढ़िया हो जाता है, यह एपीके में दिखाई देता है, यह सफलतापूर्वक डिवाइस पर प्रतिलिपि बनाता है।

09-17 17:35:26.450: DEBUG/dalvikvm(19277): Trying to load lib /data/data/ca.ascensionsystems.mypackagename/lib/libstlport_shared.so 0x476c6f30 
09-17 17:35:26.450: INFO/dalvikvm(19277): Unable to dlopen(/data/data/ca.ascensionsystems.mypackagename/lib/libstlport_shared.so): Cannot load library: link_image[1995]: failed to link libstlport_shared.so 
09-17 17:35:26.450: WARN/dalvikvm(19277): Exception Ljava/lang/UnsatisfiedLinkError; thrown during Lca/ascensionsystems/mypackagename/Ascengine;.<clinit> 
09-17 17:35:26.450: WARN/dalvikvm(19277): threadid=8: thread exiting with uncaught exception (group=0x40025a70) 
09-17 17:35:26.470: VERBOSE/WindowManager(4837): Remove Window{479ca678 Starting ca.ascensionsystems.mypackagename paused=false}: mSurface=Surface(name=Starting ca.ascensionsystems.mypackagename, identity=90) mExiting=false isAnimating=true [email protected] inPendingTransaction=false mDisplayFrozen=false 
09-17 17:35:26.470: ERROR/WindowManager(4837): return in removeWindowLocked 
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): FATAL EXCEPTION: GLThread 9 
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): java.lang.ExceptionInInitializerError 
09-17 17:35:26.490: ERROR/AndroidRuntime(19277):  at ca.ascensionsystems.mypackagename.GL2JNIView$Renderer.onSurfaceChanged(GL2JNIView.java:336) 
09-17 17:35:26.490: ERROR/AndroidRuntime(19277):  at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1327) 
09-17 17:35:26.490: ERROR/AndroidRuntime(19277):  at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1118) 
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): Caused by: java.lang.UnsatisfiedLinkError: Library stlport_shared not found 
09-17 17:35:26.490: ERROR/AndroidRuntime(19277):  at java.lang.Runtime.loadLibrary(Runtime.java:461) 
09-17 17:35:26.490: ERROR/AndroidRuntime(19277):  at java.lang.System.loadLibrary(System.java:557) 
09-17 17:35:26.490: ERROR/AndroidRuntime(19277):  at ca.ascensionsystems.mypackagename.Ascengine.<clinit>(Ascengine.java:26) 
09-17 17:35:26.490: ERROR/AndroidRuntime(19277):  ... 3 more 
09-17 17:35:26.500: WARN/ActivityManager(4837): Force finishing activity ca.ascensionsystems.mypackagename/.mypackagenameActivity 

ध्यान दें कि मैं "mypackagename" के साथ मेरा असली पैकेज का नाम बदल दिया गया के रूप में दूर मेरी आगामी खेल के सुपर गुप्त भयानक नाम देना नहीं: फिर भी मैं इस त्रुटि मिलती है। :) यह भी ध्यान दें कि Ascengine एक और है। ओओ, मेरा मुख्य आवेदन SO जो मेरा 2 डी इंजन है।

किसी को भी इस तरह में समस्या आ रही? कोई विचार? यह भी ध्यान दें कि मैंने अपने deps की जांच करने के लिए libstlport_shared पर objdump किया था। मैंने पुष्टि की कि वे डीडीएमएस के साथ मेरे डिवाइस पर मौजूद हैं और libstlport_shared लोड करने का प्रयास करने से पहले उन्हें अपने जावा कोड में भी स्पष्ट रूप से लोड कर चुके हैं। कोई फर्क नहीं पड़ता। अग्रिम में धन्यवाद!

भी

यह सवाल करने के लिए एक दूसरे, वैकल्पिक घटक की तरह है। एक समाधान मैंने सोचा है लेकिन अभी तक कोशिश नहीं की है System.load (absolutePathToLibrary) का उपयोग करना है, लेकिन मुझे यह नहीं पता कि जावा के भीतर इस पथ को कैसे उत्पन्न किया जाए। स्पष्ट कारणों से, मैं इसे हार्ड कोड नहीं करना चाहता हूं। एक बार फिर धन्यवाद!

+0

मुझे एक समान समस्या है, क्या आप मेरी मदद कर सकते हैं? http://stackoverflow.com/questions/11483078/library-stlport-shared-not-found-in-titanium-application – Mari

उत्तर

2

ठीक है ठीक है, ऐसा लगता है कि मैं इन सबसे छुटकारा एक समाधान मिल गया है,। मैं मूल रूप से बस एसएलएल बंदरगाह के साझा संस्करण का उपयोग करके त्याग दिया और स्थैतिक पर स्विच किया। मैं तो स्थिर संस्करण Application.mk ध्वज का उपयोग कर फिर से बनाया: STLPORT_FORCE_REBUILD := true

हालांकि, मैं अभी भी अजीब मुद्दों था। यह एक बार संकलित और ठीक स्थापित किया। तब मैंने एक साफ और अनुशंसित/तैनाती की और यह ठीक काम खत्म कर देगा, तो मुझे बताएं कि मेरे ऐप में एक संवाद बॉक्स में त्रुटियां थीं लेकिन वास्तव में ग्रहण में नहीं थीं। मैंने ग्रहण से बाहर निकला, इसे फिर से शुरू किया, साफ किया और पुनर्निर्मित किया और यह सब अब काम करता है। ऐसा लगता है कि नवीनतम एनडीके के साथ कुछ बग/मुद्दे हैं ... आशा है कि एनडीके आर 7 के साथ तय किया जाएगा जब वे अपवादों के साथ एक पूर्ण एसटीएल पोर्ट करते हैं।

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