2012-02-03 14 views
32

जब मैं # शामिल साथ सीपीपी फ़ाइल संकलन करने की कोशिश मैं cpp फ़ाइल का उपयोग कर (cygwin के साथ विंडोज 7) NDK-निर्माण उपकरण संकलन के साथ समस्या यह त्रुटि दिखाई देता है हो रही है:एंड्रॉयड NDK-निर्माण iostream: ऐसी कोई फ़ाइल या निर्देशिका

यहाँ

#include <jni.h> 
#include <string.h> 
#include <stdio.h> 
#include <android/log.h> 
#include <iostream> 

#define DEBUG_TAG "NDK_SampleActivity" 
#define LOG_TAG "hellojni" 
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__) 
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__) 


#ifdef __cplusplus 
extern "C" { 
#endif 

void Java_com_test_ndk_SampleActivity_helloLog(JNIEnv* env, jobject thisobj, jstring logThis) 
{ 
    jboolean isCopy; 

    const char * szLogThis = env->GetStringUTFChars(logThis, &isCopy); 

    __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:LC: [%s]", szLogThis); 

    env->ReleaseStringUTFChars(logThis, szLogThis); 
} 



#ifdef __cplusplus 
} 
#endif 

और मेरे Android.mk फ़ाइल है::

jni/native.cpp:5:20: error: iostream: No such file or directory 

यहाँ मेरी cpp फ़ाइल है

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

APP_STL:=stlport_static 

LOCAL_LDLIBS := -llog 

LOCAL_MODULE := swingbyte-android 

LOCAL_SRC_FILES := native.cpp 

LOCAL_C_INCLUDES := $(LOCAL_PATH)/include-all 
include $(BUILD_SHARED_LIBRARY) 

मेरे पास एंड्रॉइड एनएनडीके फ़ोल्डर (एनडीके_आरओटी \ स्रोत \ cxx-stl \ gnu-libstdC++ \ शामिल) में iostream फ़ाइल है, लेकिन मुझे यह नहीं पता कि उस फ़ोल्डर में आईट्रीम (और अन्य स्टैंडएट हेडर फाइल) देखने के लिए कंपाइलर को कैसे बताना है ।

ऐसा लगता है कि मुझे एक या कुछ पर्यावरण चर या कुछ कॉमिकर झंडे याद आ रहे हैं।

उत्तर

61

मुझे लगता है कि "APP_STL: = stlport_static" एप्लिकेशन.एमके फ़ाइल में होना चाहिए।

"application.mk" फ़ाइल बनाएं और इसमें "APP_STL: = stlport_static" लिखें।

+0

मुझे यह लाइन एंड्रॉइड.एमके में मिली है, आप इसे मेरे पोस्ट में देख सकते हैं। –

+7

आपको उस लाइन को APPLICATION.mk फ़ाइल में रखना चाहिए, न कि ANDROID.mk –

+2

हाँ! APPLICATION.mk की ANDROID.mk की तुलना में एक अलग भूमिका है, और इसे jni की रूट (-> projet_dir/jni/application.mk) पर बनाया जाना चाहिए। (धन्यवाद मार्टिन) – Gaetan

0

अपने एंड्रॉइड एनडीके को नवीनतम में अपडेट करें। मुझे एंड्रॉइड ndk ver 5

+1

मैं एंड्रॉइड स्टूडियो 2.1.1 में एनडीके का उपयोग कर रहा हूं। अभी भी एक ही त्रुटि हो रही है। –

2

में त्रुटि का सामना करना पड़ा यह मेरे लिए काम करता है।

LOCAL_STATIC_LIBRARIES += libstlport 

LOCAL_C_INCLUDES += external/stlport/stlport 
LOCAL_C_INCLUDES += bionic 
+0

भी काम नहीं कर रहा –

+0

'बायोनिक' क्या है ?? –

1

APP_PLATFORM := android-23 

या जो कुछ भी संशोधन आप यह मेरे लिए हल का उपयोग जोड़ना।

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