android 编译PinyinIME输入法报错

android 编译PinyinIME输入法报错,第1张

android 编译PinyinIME输入法报错 1、错误提示
C:SVNCustomPinyinIMEappsrcmaincppandroidcom_android_inputmethod_pinyin_PinyinDecoderService.cpp:217:65: error: cannot initialize a parameter of type 'jboolean *' (aka 'unsigned char *') with an rvalue of type 'bool'
2、找到这行编译错误的代码 
JNIEXPORT jint JNICALL nativeImGetPredictsNum(JNIEnv *env, jclass clazz,
                                              jstring fixed_str) {
  char16 *fixed_ptr = (char16*)(*env).GetStringChars(fixed_str, false);
  size_t fixed_len = (size_t)(*env).GetStringLength(fixed_str);

  char16 fixed_buf[kMaxPredictSize + 1];

  if (fixed_len > kMaxPredictSize) {
    fixed_ptr += fixed_len - kMaxPredictSize;
    fixed_len = kMaxPredictSize;
  }
  utf16_strncpy(fixed_buf, fixed_ptr, fixed_len);
  fixed_buf[fixed_len] = (char16)'';

  predict_len = im_get_predicts(fixed_buf, predict_buf);

  (*env).ReleaseStringChars(fixed_str, fixed_ptr);

  return predict_len;
}
3、解决办法

里面函数第一行里面的false 改成  JNI_FALSE

  char16 *fixed_ptr = (char16*)(*env).GetStringChars(fixed_str, false);

改成

char16 *fixed_ptr = (char16*)(*env).GetStringChars(fixed_str, JNI_FALSE);

4、编译注意事项

编译这个开源的输入法。熟悉ndk配置和cmake配置就可以了。

cmake配置如下

 build设置

 

local.properties文件编译的ndk路径配置ndk.dir=C:\Users\AppData\Local\Android\Sdk\ndk.3.6528147

 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5697249.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存