2012-02-26 16 views
24

के साथ एसटीएल का उपयोग करना मैं एंड्रॉइड एनडीके सी ++ फ़ाइल में एसटीएल का उपयोग करने की कोशिश कर रहा हूं। मैं मानचित्र, वेक्टर और विभिन्न अन्य एसटीएल वर्गों का उपयोग करने की कोशिश करता हूं और मैं इसे संकलित नहीं कर सकता क्योंकि यह फाइलें नहीं ढूंढता है।एंड्रॉइड एनडीके सी ++

मेरे वर्गों हेडर के साथ शुरू होता है:

#pragma once 
#include <map> 
#include <iostream> 
#include <stdexcept> 
#include <vector> 
#include <set> 
#include <list> 
#include <algorithm> 

और मैं निम्न त्रुटि संदेश मिलता है:

2> In file included from jni/../../Classes/Assist/Test.cpp:1: 
2> jni/../../Classes/Assist/Test.h:2:15: error: map: No such file or directory 
2> jni/../../Classes/Assist/Test.h:3:20: error: iostream: No such file or directory 
2> jni/../../Classes/Assist/Test.h:4:21: error: stdexcept: No such file or directory 
2> jni/../../Classes/Assist/Test.h:5:18: error: vector: No such file or directory 
2> jni/../../Classes/Assist/Test.h:6:15: error: set: No such file or directory 
2> jni/../../Classes/Assist/Test.h:7:16: error: list: No such file or directory 
2> jni/../../Classes/Assist/Test.h:8:21: error: algorithm: No such file or directory 
2> In file included from jni/../../Classes/Assist/Test.cpp:1: 

मैं विभिन्न पदों पढ़ा है और करने की कोशिश की "APP_STL: = stlport_static" और "APP_STL: = gnustl_static" एक application.mk फ़ाइल में लेकिन यह काम नहीं किया।

क्या कोई जानता है कि मैं इसे कैसे काम कर सकता हूं?

+1

मेरी सलाह जावा एपीआई के साथ रहना है में शिकायत नहीं कर सकते हैं। ईमानदारी से :( – paulsm4

+0

शायद http://stackoverflow.com/questions/4893403/cant-include-c-headers-like-vector-in-android-ndk/4931170#4931170 और http://stackoverflow.com/questions/1650963/ustl-or-stlport-for-android आपको मदद करेगा। – Yury

+0

क्या आप एनडीके का उपयोग कर रहे हैं? –

उत्तर

1

ऐसा लगता है कि गलती किसी तरह से टूट गई एनडीके थी। मैंने इसे पुनः स्थापित किया (हटाएं, अनजिप करें) और अब यह काम करता है।

43

मैं एक ही समस्या थी, और उसके बाद एहसास हुआ कि मैं रखना होगा: APP_STL: = stlport_static

Application.mk में, नहीं Android.mk ... doh

तब मैं जोड़ने की जरूरत : $ {ANDROID_NDK_ROOT} \ स्रोतों \ CXX-एसटीएल \ STLport \ STLport

ग्रहण में शामिल करने के लिए पथ

यह त्रुटियों के बारे में यूआई

+0

क्षमा करें मेरे लिए काम नहीं किया लिनक्स एनवी में एक ही बिल्ड ठीक काम करता है, लेकिन विंडोज़ में विफल रहता है। अभी भी एक उत्तर की तलाश है। –

+0

सी ++ _ साझा करने के लिए बेहतर है ताकि एपीके में libcpp_shared.so को शामिल किया जा सके। –

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