Я с помощью этой библиотеки: https://github.com/mysolution/hyphenator В JNI Я создаю эту функцию:Android NDK и __android_log_print
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):
Как решить эту проблему? Я думаю, что проблема в кодировании, но я не знаю, как это решить.
Я могу подтвердить, что я пытаюсь выйти из ASCII-символов, но я могу выйти из myString.c_str(); в отдельном вызове __android_log_print, хотя, похоже, проблема связана с конкатенацией char *, id любят знать об этом. Будет ли сообщение, если я это выясню. – Dev2rights
У вас похоже несоответствие типа, но без объявления 'test_words' я не могу сказать. Компилятор должен быть способен (gcc имеет специальную поддержку для типов формата printf); включите предупреждения. –