关于Android车牌识别EasyPR_Android移植过程中相关报错

这篇博客应该算是我的第一篇博客,写这篇博客的主要原因是记录在将EasyPR_Android车牌识别移植到本人程序时所遇到的各类问题。
我也是一个自学Android的小白,很多不懂得的也是在自己摸索,如有不正确的地方请多多指正。
最近有一个项目需要用到车牌识别,因为场景比较固定所以使用了开源项目https://github.com/liuruoze/EasyPR 的android移植版本。该作者在移植到Android平台时应该用的是Android Studio 2.1.2版本所以我在将该项目挪到我自己的工程时并未出现任何问题即可使用,这时我用的as是2.3.3版本。没过几天我把as升级到3.6.1后再移植便出现了以下问题。

  1. 第一 : 报错 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file “/data/app/com.aiseminar-1/base.apk”],nativeLibraryDirectories=[/data/app/com.aiseminar-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn’t find “libEasyPR.so”
    根据我在网上找到的资料,是因为64位机器默认去查找arm64-v8a目录下是否有合适的64位库,如果没有则回去libs下查找32位的库,而fresco的draw-pipeline太完善了考虑了64位的机器所以他的arm64-v8a下有so库,对应的系统就创建了lib64的文件,而不再去找32位的库。
    我这里用到的是在bulid.gradle中添加如下代码:
 defaultConfig {
        applicationId "com.aiseminar"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
        }
    }

添加其中的ndk代码块即可。
来源:https://www.jianshu.com/p/a75cc076480f链接里有更多此问题的解决方案。

  1. 第二 报错:
    E/cv::error(): OpenCV Error: Parsing error (Missing or invalid SVM type) in void cv::ml::SVMImpl::read_params(const cv::FileNode&), file /Volumes/Linux/builds/master_pack-android/opencv/modules/ml/src/svm.cpp, line 2122
    这个原因就是因为没有打开该软件的内存读取权限
    在AndroidManifest中添加权限 并在设置中打开该软件的权限即可
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  1. 第三 报错:
          CreateProcess error=2, 系统找不到指定的文件。
          * What went wrong:
Execution failed for task ':app:buildNative'。
A problem occurred starting process 'command 'E:\android_study\android-ndk-r13b/ndk-build''

这里主要是因为在android中 commandLine "$ndkDir/ndk-build"后需要加 “.cmd”如

        commandLine "$ndkDir/ndk-build.cmd",

修改路径就是在bulid.gradle中。

  1. 第四 报错:
    找不到initPR(String svmpath, String annpath);方法
    这个是因为 PlateRecognizer类需要所在路径的包名为package com.aiseminar.EasyPR; 否则就会报错。

其他文件和代码都是原样照搬 只在有用的地方作出修改,如果你有需要的可以留言我发给你一份。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值