Android Opencv开发配置问题记录
本想在Ubuntu下进行视觉的开发,但奈何firefly官方并未提供Ubuntu下mipi-csi的相关资料,只好转为Android系统。此贴记录在环境搭建过程中遇到的错误及解决方法
固件版本: firefly:Android7.1 Industry
开发工具: android-studio
openCV: 4.5.5-android
环境搭建参考: 《Android配置OpenCV C++开发环境》
Q1
问题描述:
native-lib.cpp中包含头文件报错: 找不到该文件
解决方法:
- android-studio工具栏中选择 File->Sync Project with Gradle Files
- 等待编译完成即可
Q2
问题描述:
MainActivity.java文件中出现 Cannot resolve symbol ‘xxx’
出现该错误大概率是因为没有import相关的文件。
解决方法:
- 光标移至报错处,按下alt+enter
- 选择 import class 即可
Q3
问题描述:
按照firefly官网方法连接开发板与pc后,无法在pc上找到设备
个人建议: 换一根typeC线连接。本人使用配套的typeC线连接后无法在pc端看到设备信息,但换了自己的线后就可以了。但是配套的线几天前烧录固件时使用也是好的,就很奇怪…
Q4
问题描述:
app在android-studio的虚拟设备以及rk3399上都无法打开
经过百度,最后查清问题在于demo测试时图片的读写权限问题。
1 | String sourcePath = Environment.getExternalStorageDirectory() + File.separator + Environment.DIRECTORY_DOWNLOADS + File.separator + "miku.png"; |
其中 Environment.getExternalStorageDirectory()
函数会得到路径 /storage/emulated/0
。而要修改该路径下的文件或文件夹,需要首先申请 WRITE_EXTERNAL_STORAGE
、READ_EXTERNAL_STORAGE
权限。
权限申请方法:
在 MainActivity.java
的 onCreate
函数中调用以下函数:
1 | public static void requestPermissions( |
该函数需要三个参数
Activity
实例,使用this
即可- 权限数组,表示你要申请的权限类型
- 请求代码,从0开始的整形数,在处理授权结果的回调函数
onRequestPermissionsResult()
中区分是哪个授权申请的回调
之后在AndroidManifest.xml
中声明:
1 | <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/> |
重新编译、运行,应该就不会再报错了。