在过去的几天里,我一直在努力弄清楚如何为Android支持实施ICU库。 我坚持不懈,试图用NDK编译ICU源。 我从这里得到它们: https : //android.googlesource.com/platform/external/icu/

我把它放在我的jni位置并在我的Android.mk文件中添加了这一行:include $(call all-subdir-makefiles)

并添加到本地标志:

-DSQLITE_ENABLE_ICU

我在尝试构建它时遇到了很多错误(在Windows机器上)。 这是我的输出:

c:/ndk/build/core/build-binary.mk:457: warning: overriding commands for target ` "----my android project location----"//obj/local/armeabi/objs/icui1 8n/smpdtfst.o' c:/ndk/build/core/build-binary.mk:457: warning: ignoring old commands for target `"----my android project location----"//obj/local/armeabi/objs/icu i18n/smpdtfst.o' c:/ndk/build/core/build-binary.mk:457: warning: overriding commands for target ` "----my android project location----"//obj/local/armeabi/objs/icui1 8n_static/smpdtfst.o' c:/ndk/build/core/build-binary.mk:457: warning: ignoring old commands for target `"----my android project location----"//obj/local/armeabi/objs/icu i18n_static/smpdtfst.o' [armeabi] Compile thumb : icui18n <= decContext.c [armeabi] Compile thumb : icui18n <= ucln_in.c [armeabi] Compile thumb : icui18n <= ulocdata.c [armeabi] Compile++ thumb: icui18n <= indiancal.cpp [armeabi] Compile++ thumb: icui18n <= dtptngen.cpp [armeabi] Compile thumb : icui18n <= decNumber.c [armeabi] Compile thumb : icui18n <= utmscale.c [armeabi] Compile++ thumb: icui18n <= dtrule.cpp In file included from "----my android project location----"//jni/ic u/icu4c/source/i18n/../common/unicode/unistr.h:31:0, from "----my android project location----"//jni/ic u/icu4c/source/i18n/../common/unicode/locid.h:34, from "----my android project location----"//jni/ic u/icu4c/source/i18n/unicode/calendar.h:37, from "----my android project location----"//jni/ic u/icu4c/source/i18n/indiancal.h:18, from "----my android project location----"//jni/ic u/icu4c/source/i18n/indiancal.cpp:10: "----my android project location----"//jni/icu/icu4c/source/i18n/.. /common/unicode/std_string.h:33:18: fatal error: string: No such file or directo ry #include ^ compilation terminated. make.exe: *** ["----my android project location----"//obj/local/arm eabi/objs/icui18n/indiancal.o] Error 1 make.exe: *** Waiting for unfinished jobs.... In file included from "----my android project location----"//jni/ic u/icu4c/source/i18n/../common/unicode/unistr.h:31:0, from "----my android project location----"//jni/ic u/icu4c/source/i18n/../common/unicode/strenum.h:14, from "----my android project location----"//jni/ic u/icu4c/source/i18n/../common/unicode/uenum.h:24, from "----my android project location----"//jni/ic u/icu4c/source/i18n/unicode/ucal.h:12, from "----my android project location----"//jni/ic u/icu4c/source/i18n/unicode/udat.h:16, from "----my android project location----"//jni/ic u/icu4c/source/i18n/unicode/datefmt.h:26, from "----my android project location----"//jni/ic u/icu4c/source/i18n/dtptngen.cpp:15: "----my android project location----"//jni/icu/icu4c/source/i18n/.. /common/unicode/std_string.h:33:18: fatal error: string: No such file or directo ry #include ^ compilation terminated. make.exe: *** ["----my android project location----"//obj/local/arm eabi/objs/icui18n/dtptngen.o] Error 1 "----my android project location----"//jni/icu/icu4c/source/i18n/dt rule.cpp: In member function 'UBool icu_54::DateTimeRule::operator==(const icu_5 4::DateTimeRule&) const': "----my android project location----"//jni/icu/icu4c/source/i18n/dt rule.cpp:85:22: error: cannot use typeid with -fno-rtti (typeid(*this) == typeid(that) && ^ "----my android project location----"//jni/icu/icu4c/source/i18n/dt rule.cpp:85:38: error: cannot use typeid with -fno-rtti (typeid(*this) == typeid(that) && ^ make.exe: *** ["----my android project location----"//obj/local/arm eabi/objs/icui18n/dtrule.o] Error 1

这是我在jni目录中的主要Android.mk文件:

LOCAL_PATH:= $(call my-dir) include $(call all-subdir-makefiles) include $(CLEAR_VARS) LOCAL_MODULE:= sqlitenative LOCAL_SRC_FILES := sqlite3.c sqlite3_native.cpp # NOTE the following flags, # SQLITE_TEMP_STORE=3 causes all TEMP files to go into RAM. and thats the behavior we want # SQLITE_ENABLE_FTS3 enables usage of FTS3 - NOT FTS1 or 2. # SQLITE_DEFAULT_AUTOVACUUM=1 causes the databases to be subject to auto- vacuum # SQLITE_HAS_CODEC enables crypto support for database LOCAL_CFLAGS += -DHAVE_USLEEP=1 \ -DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 \ -DSQLITE_THREADSAFE=1 \ -DNDEBUG=1 \ -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \ -DSQLITE_DEFAULT_AUTOVACUUM=1 \ -DSQLITE_TEMP_STORE=3 \ -DSQLITE_ENABLE_FTS3 \ -DSQLITE_ENABLE_FTS3_PARENTHESIS \ -DSQLITE_ENABLE_COLUMN_METADATA \ -DSQLITE_ENABLE_ICU \ -DHAVE_STRCHRNUL=0 LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog -lc LOCAL_C_INCLUDES += $(call include-path-for, system-core)/cutils LOCAL_SHARED_LIBRARIES += libicuuc \ libicui18n \ libutils LOCAL_SHARED_LIBRARIES += libicuuc-host libicui18n-host LOCAL_STATIC_LIBRARIES := liblog libutils libcutils include $(BUILD_SHARED_LIBRARY) include $(BUILD_HOST_SHARED_LIBRARY)

android 编译 icu,使用NDK构建ICU相关推荐

  1. 【CMake】CMake 引入 ( Android NDK 构建脚本 | CMake 命令手册 )

    文章目录 一.Android NDK 构建脚本 二.CMake 构建脚本示例 三.CMake 命令手册 1.CMake 脚本命令 2.CMake 工程命令 该系列博客的应用场景是 Android St ...

  2. android jni 机器码,NDK构建

    Android.mk Android.mk把你的源码组织成"模块"(静态库/动态库).默认情况会读取project/jni/Android.mk,并会读取project/jni/A ...

  3. Android编译及编译脚本、Android构建基础学习笔记

    Android编译及编译脚本.Android构建基础学习笔记 Android编译及编译脚本 概述 Android.mk转换成Android.bp 例子(简单Android.mk文件转Android.b ...

  4. 记录过程: Android Studio4.2通过NDK调用TNN(预编译的tnn so库)

    目录 0. 准备 1. 创建android ndk工程 2. 分析默认生成的工程 3. 写好java native接口 4. 实现这些java native方法(jni) 5. 修改cpp/CMake ...

  5. android jni不适用ndk,Android NDK编译之undefined reference to 'JNI_CreateJavaVM'

    利用Android NDK编译动态库,在C文件中调用了两个JNI函数:JNI_GetDefaultJavaVMInitArgs和JNI_CreateJavaVM.编译的时候始终报以下错误: XXX: ...

  6. Android 编译过程介绍,Android.mk 和 Android.bp 分析, 在源码中编译 AndroidStudio 构建的 App

    目录 一.Android 编译 1. 编译流程 2. Soong 介绍 3. build.sh 二.Android.mk 解析 三.Android.bp 解析 1. 模块类型 2. 模块属性 四.An ...

  7. android编译v8引擎,V8引擎 Android库构建

    强烈推荐大家在linux系统下构建v8引擎,如果您喜欢折腾,非要使用MAC,可参考这篇文章,可以帮您更快速上手MAC 下 V8 Android编译指墙. Checking out the V8 sou ...

  8. 32/64位Windows 7 下VC9.0编译boost::regex,带ICU

    首先,我的是VC9.0,对应的是ICUC4C 4.4.2版本,要先去ICU的主页上下载ICU4C 4.4.2,只需要下载编译好的包就行了. 32位 http://download.icu-projec ...

  9. docker 构建Android编译环境

    docker 构建Android编译环境 文章目录 docker 构建Android编译环境 @[toc] ubuntu:14.04镜像 FAQs ubuntu:18.04镜像 FAQs 由于电脑升级 ...

最新文章

  1. C语言 #ifndef 引起的redefinition of xxx 问题解决
  2. REDHAT6.4桌面环境添加快捷建打开命令行终端
  3. Python kmean-opencv
  4. 2019已过半,薪资相匹配除了实力,其实最重要的是……
  5. matplotlib 一张图多个图,如何在Matplotlib中绘制同一个图上的多个函数?
  6. java有参和无参的用处_Java对比有参数和无参数
  7. docker 安装git_docker随手笔记第十二节 jenkins+docker+nginx+纯静态页面配置
  8. oracletns中不存在名称为_oracle tnsname.ora中的SERVICE_NAME 代表实例的名称还是代表全局数据库的名称?...
  9. java compareto方法怎么排序的_很简单却能让你面试头疼得Java容器,这里从源码给你解释清楚
  10. Steinberg Cubase Elements 11 for Mac(音频处理软件)
  11. OpenLayers 官网例子的中文详解 1
  12. aliez歌词_aLIEz (中文版)歌词
  13. 77.(leaflet之家)leaflet图层显示与隐藏
  14. win7系统老是弹窗怎么解决_Win7电脑右下角弹出广告如何解决?
  15. build constraints exclude all Go file GOland 导入“github.com/gin-gonic/gin“ 报红,
  16. python3刷火车票_Python3实现抢火车票功能(上)
  17. 量化:常见策略指标合集
  18. ftp下载工具绿色版,网络上难找的绿色版ftp下载工具
  19. liunx下通过Canal将MySQL数据同步到Elasticsearch
  20. [再寄小读者之数学篇](2014-06-23 积分不等式 [中国科学技术大学2013年高等数学B 考研试题])...

热门文章

  1. 信用卡迎来史上最强风控?利用数据挖掘进行信用卡评分,提高银行的客户风险识别能力
  2. 微信小程序:小程序开发测试时候使用http请求
  3. 博文视点官方博客http://blog.csdn.net/bvbook
  4. React中的高优先级任务插队机制
  5. microsoft office2016下载和安装
  6. office安装后无法打开 office 2016找不到VCRUNTIME 140.1
  7. [20130106]关于不同字符集下clob字段的存储问题.txt
  8. 神经网络和人工智能原理,人工神经网络基本原理
  9. 荣耀4c android版本,华为荣耀4C从EMUI3.0安卓4.4升级到4.0 安卓版本升级到6.0,荣耀畅玩4C—升级教程。...
  10. Pulmonary--Detection7