android 编译PinyinIME输入法报错

1、错误提示

C:\SVN\CustomPinyinIME\app\src\main\cpp\android\com_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)'\0';

  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\\21.3.6528147

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pinyinime输入法是一种基于拼音输入的输入法软件,其源码是指该输入法的程序代码。输入法是为了方便用户使用手机或电脑输入文字而开发的一种应用程序。pinyinime输入法的源码包含了该输入法的所有逻辑和功能实现。 pinyinime输入法的源码通常包括以下几个部分:拼音转换模块、词库、界面设计和用户交互等。拼音转换模块是输入法的核心部分,负责将用户输入的拼音转换为对应的汉字或词组。词库包含了大量的常用词汇和短语,用于辅助拼音转换的匹配。界面设计部分则是指输入法界面的布局和样式设计,主要包括键盘、候选词列表等组件。用户交互包括用户输入的处理和系统响应等。 pinyinime输入法的源码的实现主要依赖于编程语言和相关开发技术。例如,Java是一种常用的编程语言,在Android平台上使用Java语言进行开发;C++也是一种常用的编程语言,用于在Windows平台上进行输入法开发。开发者可以利用各种工具和框架,如Android Studio、Visual Studio等,来编写和调试输入法源码。 通过研究pinyinime输入法的源码,开发者可以了解到拼音输入法的原理和实现方式。同时,开发者也可以根据自己的需求对源码进行修改和扩展,以定制化符合特定用户需求的输入法软件。输入法的源码是输入法开发和定制的基础,对于想要深入了解和参与输入法开发的人来说,研究和学习源码是非常有价值的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值