Android NDK и __android_log_print - PullRequest
       3

Android NDK и __android_log_print

2 голосов
/ 21 февраля 2012

Я использую эту библиотеку: https://github.com/mysolution/hyphenator В JNI я создаю эту функцию:

int main2()
{
 //load russian hyphenation patterns
 struct pattern_list_t* plist = create_pattern_list();
 size_t i = 0;
 while (patterns[i])
 {
 struct pattern_t* p = create_pattern(patterns[i], isdigit_func, ismarker_func, char2digit_func);
 add_patern(plist, p);
 ++i;
 }
 sort_pattern_list(plist);

 //hyphenate test words
 size_t word_index = 0;
 while (test_words[word_index])
 {
 struct word_hyphenation_t* wh = hyphenate_word(test_words[word_index], plist, marker);
 i = 0;
 while (test_words[word_index][i])
 {
   __android_log_print(ANDROID_LOG_INFO, "HelloNDK!", "%c", test_words[word_index][i]);
 ++i;
 }

 destroy_word_hyphenation(wh);

 ++word_index;
 }

 //cleanup
 destroy_pattern_list(plist);
 return 0;
}

В Android NDK эта работа, но я получаю в LogCat:

02-21 16: 15: 18.989: INFO / HelloNDK! (403): 100

Как решить эту проблему?Я думаю, что проблема в кодировании, но я не знаю, как решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 21 мая 2012

Я решил, и это кажется мне очень неправильным .....

Так что для конкатенации char * в __android_log_vprint и __android_log_print может показаться, что вам нужно использовать escape% s, а не% c.

Это полностью разрушает мои планы по созданию межплатформенного журнала * для iOS, Android и Blackberry как printf ("% s", myString.c_str ());незаконноПридется повеселиться с аргами и разобрать строку.Во всяком случае, это еще одна проблема, и есть ваше решение ....

0 голосов
/ 21 февраля 2012

Каков ваш ожидаемый результат? Если персонаж выпадает из области ASCII, вам, конечно, нужно что-то для просмотра logcat, поддерживающего его. Предполагая, что вы выводите UTF-8, Terminator подходит для Linux и Mintty (в сочетании с Cygwin / etc.) Для Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...