android eclipse 编译 tess-two为.so文件失败总结

<1> eclipse配置ndk:

https://developer.android.google.cn/ndk/downloads/,并且配置ndk的环境变量 

 (不同的sdk版本对应不同的ndk版本。否则会出现编译失败)

<2>在cmd下进行编译 
        (1)cd 到tess_two 文件下
        (2)再输入 :ndk-build 命令 后,需要等待编译完成,这个过程比较漫长。。。

  由于我下载的ndk版本和我的sdk版本不匹配,导致  ndk_build 命令一直编译失败 


sdk和ndk版本对应关系 
API_Level    Platform_Version    Version_Code    NDK_Version
28    Android 9.0    Pie(馅饼)     
27    Android 8.1    Oreo(奥利奥)     
26    Android 8.0    Oreo(奥利奥)     
25    Android 7.1    Nougat(牛轧糖)     
24    Android 7.0    Nougat(牛轧糖)     
23    Android 6.0    Marshmallow(棉花糖)     
22    Android 5.1    Lollipop(棒棒糖)     
21    Android 5.0    Lollipop(棒棒糖)     
20    Android 4.4W    KitKat(奇巧)     
19    Android 4.4-4.4.4    KitKat(奇巧)     
18    Android 4.3.x    Jelly Bean(果冻豆)    NDK 9
17    Android 4.2.x    Jelly Bean(果冻豆)     
16    Android 4.1.x    Jelly Bean(果冻豆)     
15    Android 4.0.3-4.0.4    Ice Cream Sandwich(雪糕三明治)    NDK 8
14    Android 4.0-4.0.2    Ice Cream Sandwich(雪糕三明治)    NDK 7
13    Android 3.2-3.2.2    Honeycomb(蜂巢)     
12    Android 3.1    Honeycomb(蜂巢)    NDK 6
11    Android 3.0    Honeycomb(蜂巢)     
10    Android 2.3.3-2.3.7    Gingerbread(姜饼)     
9    Android 2.3-2.3.2    Gingerbread(姜饼)    NDK 5
8    Android 2.2-2.2.3    Froyo(冻酸奶)    NDK 4
7    Android 2.1    Eclair(泡芙)    NDK 3
6    Android 2.0.1    Eclair(泡芙)     
5    Android 2.0    Eclair(泡芙)     
4    Android 1.6    Donut(甜甜圈)    NDK 2
3    Android 1.5    Cupcake(纸杯蛋糕)    NDK 1
2    Android 1.1    Bender(发条机器人)     
1    Android 1.0    Astro(铁壁阿童木)

这是我编译好的.so文件:我的sdk版本是16,ndk是android-nr10e

 https://download.csdn.net/download/m0_37143081/11109833

tess-two对于有格式的字体识别度较高,我的项目需求是识别手写的文字,经过多次测试未能识别手写的文字。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.) 在项目根目录下创建jni目录,下面是要放进去的第一个文件Android.mk LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := main_jni #LOCAL_CFLAGS := LOCAL_SRC_FILES := main.cpp #LOCAL_LDLIBS := include $(BUILD_SHARED_LIBRARY) 2.) 在jni目录创建main.cpp #include using namespace std; #ifdef __cplusplus extern "C" { #endif class Test { public: Test(){}; ~Test(){}; int SomeFunc() { return 20140522; } }; jint Java_com_yxiaolv_testjni_MainActivity_SomeFunc(JNIEnv *env, jobject thiz) //红色部分必须和你java类包名一致 { Test *test = new Test(); return test->SomeFunc(); } #ifdef __cplusplus } #endif //将下面第3.)至第5.)步的代码片段放到eclipse创建android项目时自动产生的MainAcitivity.java中就可以了 3.) 在Java Activity代码中添加对这个jni的调用 (本例中是MainActivity.java ): static { System.loadLibrary("main_jni"); } 4.) 在调用者Activity中定义函数 native int SomeFunc(); 5.) 在activity中调用 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView tv = new TextView(this); int i = SomeFunc(); tv.setText( String.valueOf(i) ); setContentView(tv); } //下面的第6.)和第7.)步可以被集成的.cproject 和在.project中添加plugin之后一键编译,不用单独起dos窗口了。由于没有找到生成.cproject的工具,只能手写,所以本文不使用该方法,以后找到了好的方法再补充。委屈 6.) 在dos窗口中,cd到项目路径下,运行ndk-build 命令,该命令会自动搜索该路径子目录下的native项目,进行编译。 (Note: 编译完成后不要忘记了刷新项目)。 7.) 重新编译和部署项目,就可以看到已经包含了.so的apk运行在目标机上了。 摘自 http://stackoverflow.com/questions/13654678/how-compile-c-project-via-android-ndk 1). 如果不知道怎样安装和使用windows版的NDK,可以参考 http://blog.csdn.net/do_script/article/details/26478583

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值