Android 如何编译ICU资源
发布日期:2021-06-29 15:24:27 浏览次数:2 分类:技术文章

本文共 2070 字,大约阅读时间需要 6 分钟。

如何编译ICU资源

如果只是测试修改后效果,执行步骤A即可;如果需要build后生效,则需要执行全部步骤

A. 在临时目录中编译ICU资源

1. 在external/icu4c下新建临时目录icubuild,进入icubuild目录

$mkdir external/icu4c/icuBuild

$cd external/icu4c/icuBuild

2. 执行icuConfigureRun Linux命令,生成make文件

$.././runConfigureICU Linux

3. 执行make -j2命令,

$make -j2

对于GB版本,如果make -j2出错,需要用mtk提供的文件( 2.3 make-j2 ERROE.rar)替换(需要备份原文件)。

4. 将生成的external/icu4c/icuBuild/data/out/tmp/icudt44l.dat push到手机测试

$adb remount

$adb push external/icu4c/icuBuild/data/out/tmp/icudt44l.dat system/usr/icu/

$adb reboot

ICS对应的是icudt46l.dat,

JB以及以后版本是icudt48l.dat

B. COPY所需文件

1、将第一步生成的externalicu4cicubuilddataout mpicudt44l.dat复制到externalicu4cstubdata下并改名为icudt44l-all.dat,覆盖原来的同名文件。

2、对于GB版本,从ICS工程上拷贝路径prebuildlinux-x86icu-4.4文件夹,放到相应的路径下

ICS版本是icudt46l.dat和icudt46l-all.dat

JB及以上是icudt48l.dat和icudt48l-all.dat

C. 配置环境变量

重新配置环境变量(如果不配置正确会导致执行脚本出错)。以我的为例,配置过程如下:

1. 在终端中进入/proj/mtk71491/Desktop/GB/alps目录即:

$cd /proj/mtk71491/Desktop/GB/alps

2. 然后执行脚本(等价于./ build/envsetup.sh):

$source build/envsetup.sh

3. 配置环境变量(注意“=”前后不要有空格)。

$export ANDROID_EABI_TOOLCHAIN=/proj/mtk71491/Desktop/GB/alps/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/(JB2以及以上不执行此步骤)

$export LD_LIBRARY_PATH=/proj/mtk71491/Desktop/GB/alps/prebuilt/linux-x86/icu-4.4/(JB以及上以跳过这一步)

$export ANDROID_BUILD_TOP=/proj/mtk71491/Desktop/GB/alps/

执行完没有任何提示说明配置成功。

D. 执行脚本,重新生成.dat文件

执行脚本,如果遇到文档印尼语错误请用MTK提供的脚本(icu_dat_generator.rar)替换后再执行,如下所示:

1. 进入/proj/mtk71491/Desktop/GB/alps/external/icu4c/studdata目录

$cd external/icu4c/studdata

2. 执行脚本

$./icu_dat_generator.py 4.4 (ICS及以后版本执行$./icu_dat_generator.py)

如果该脚本执行成功,则会更新一遍stubdata下的icudt44l-**.dat这些文件,如果看到这些文件的修改时间变成了最新的时间,就说明已经重新生成真正最后起 作用的是icudt44l-large.dat这个文件。

ICS版是icudt46l-default.dat

JB以及以上是icudt48l-default.dat

E. 重新编译工程

一般修改后都是重新编译工程来测试效果,使用remake android命令即可.

F. 如果执行./icu_dat_generator.py报以下错误

Traceback (most recent call last):

File ./icu_dat_generator.py, line 296, in

main()

File ./icu_dat_generator.py, line 261, in main

icu_version = re.sub(r([^0-9]), , os.path.basename(input_files[0]))

IndexError: list index out of range

可能是环境变量没有配置好,请使用绝对路径,而不是相对路径。

转载地址:https://codegg.blog.csdn.net/article/details/48314557 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:如何判断复杂语言引擎支持情况
下一篇:android 再议

发表评论

最新留言

很好
[***.229.124.182]2024年04月17日 17时22分03秒