0、前言
本篇主要记录导入百度OCR的SDK的相关步骤,及解决相关bug。
1、下载第三方SDK
1.1 创建应用
在https://console.bce.baidu.com
(百度智能云-管理中心)点击创建应用
创建应用过程中,填写包名时要注意和后面新建Android Project的包名要一致。
1.2下载License文件
也可以使用ak/sk方式。但用License文件(产品许可文件)更安全。
1.3下载SDK
解压后:
2、工程配置
2.1 复制文件
新建Android 工程(笔者选择SDK的版本是28,最好不要低于28),将百度OCR的SDK中的libs\ocr-sdk.jar
复制,放入Android工程目录app/libs
下。
在Android工程目录app\src\main
下新建两个文件夹asserts
和jniLibs
,将先前下载的License文件移至asserts
中,百度OCR的SDK中的libs\arm64-v8a
、libs\armeabi
、libs\armeabi-v7a
和libs\x86
移至jniLibs
中。
2.2 导入OCR-UI模块
2.2.1 新建Module
OCR-UI模块提供了一套默认的UI。将ocr_ui模块包含到工程,以Module方式导入。
2.2.2 选择 Import Gradle Project
2.2.3 填写Source directory
Source directory选中百度ORC的SDK下的ocr_ui
2.2.4 添加依赖
在Android工程目录中的Gradle Scripts\build.gradle(Module:app)
中,添加implementation project(":ocr_ui")
项目依赖:
2.2.5 添加权限
接着在AndroidManifest.xml中添加权限:(分别是网络请求权限,数据的读存取权限,以及相机权限。)
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2.3 改bug
2.3.1 原先的SDK要接受许可协议
导入后碰到第一个错
是电脑上之前已经安装过SDK,没有接受 许可协议导致的。
参考链接【2】(见底部)解决:
解决后再在AndroidStudio中Try Again。结果应该是这样的:
2.3.2 compile要改成implementation
发现Gradle Sync还有Issues,原来compile快被移除了,将相应的compile
换成implementation
即可。还有testCompile
换成testImplementation
等等。
2.3.3 修改导入模块的compileSdkVersion版本等
没想到还有错:
“The specified Android SDK Build Tools version (25.0.2) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.5.2.Android SDK Build Tools 28.0.3 will be used.”
版本问题,笔者修改成和builder.gradle(app)中一样的版本号了(使用的是28)。
2.3.4 android.support与androidx不能共存问题
完成上述工作后,你也许还会出现如下问题:未能找到android.support.v4、未能找到android.support.annotation等。这是由于androidx与android.support不能共存引起的。笔者这里将其转换成androidx。
操作方式如上图。操作完后,笔者的只有
android.support.annotation
没有转换成功,还需要手动转换:比如:
import android.support.annotation.NonNull
改成import androidx.annotation.NonNull
;(可能还会有
import android.support.v7.app.AlertDialog
改成import androidx.app.AlertDialog
等等)
笔者完成到这一步,基本没报其他的错了(可能还要加一些依赖)。
Demo在下一篇。
3、主要参考链接
【1】https://www.okcode.net/article/43369
【2】https://blog.csdn.net/a_salty_fish/article/details/88748428