2015-02-28 2 views
0

У меня проблемы с android ndk r10. Я получаю следующее: std :: string не объявлена. Я смотрел другие темы форума, как это, но они не помогли мне. My Application.mk выглядит так:Android NDK r10: std :: string не объявлен

APP_PLATFORM := android-14 
APP_ABI := armeabi-v7a # build for the ARM version of MCPE 
APP_CFLAGS := -O2 -std=gnu99 # optimization level 2, use C99 (for decleations in for loops, etc) 

APP_CPPFLAGS := -std=c++11 
LOCAL_CFLAGS := -std=c++11 
APP_STL := stlport_static 

Пожалуйста, помогите!

+0

Запустите ndk-build с V = 1 и вырежьте/вставьте провальную командную строку и ошибку здесь. –

+0

Код тоже будет хорош. –

+0

Помогает ли это? http://stackoverflow.com/questions/14322103/android-ndk-cant-find-stlport – 18446744073709551615

ответ

1

Класс std :: string не был объявлен, потому что его там нет. К сожалению, в NDK нет std :: string. Некоторые порты std :: string существуют, я помню, что нашел один или два, но, наконец, я решил просто не использовать std :: string. Зачем? Поскольку у нас уже есть строки Java и строки C, строки Java поступают из вызовов JNI, строки C поступают из файлов, и если вы вводите еще один тип строки, это будет больше конверсии, чем использование.

EDIT: но прочитайте комментарий ниже.

+0

А? 'std :: string', безусловно, можно использовать в коде, построенном с помощью NDK, - я сделал это сам. Возможно, вы говорите о минимальной системе C++ runtime ('APP_STL: = system'), но OP использует' STLport'. Цитата из документации NDK относительно STLport: _ «Он предоставит вам полный набор стандартной библиотеки C++ заголовков». – Michael

+0

Это не поможет. Я использую новейший (r10) ndk. –

Смежные вопросы