Closed konkong closed 7 months ago
03-30 11:51:23.370 E/cv::error()(32381): OpenCV(4.9.0) Error: Requested object was not found (could not open directory: /data/app/***-RNwWSDNOyjf7H-aDC_PxVg==/base.apk!/lib/arm64-v8a) in glob_rec, file /home/king/work/opencv/opencv-4.9.0/modules/core/src/glob.cpp, line 279
我测试是正常的,有其他关键信息要补充的吗?
gradle version:8.0
gradle plugin:8.1.2
compileSdk 34
minSdkVersion 24
targetSdkVersion 33
引用部分
ndk {
abiFilters "arm64-v8a"/*"arm64-v8a", "x86", "armeabi-v7a", "x86_64"*/
}
implementation 'com.github.jenly1314.WeChatQRCode:opencv:2.1.0'
implementation 'com.github.jenly1314.WeChatQRCode:opencv-armv64:2.1.0'
// implementation 'com.github.jenly1314.WeChatQRCode:opencv-armv7a:2.1.0'
// implementation 'com.github.jenly1314.WeChatQRCode:opencv-x86_64:2.1.0'
// implementation 'com.github.jenly1314.WeChatQRCode:opencv-x86:2.1.0'
implementation 'com.github.jenly1314.WeChatQRCode:wechat-qrcode:2.1.0'
implementation 'com.github.jenly1314.WeChatQRCode:wechat-qrcode-scanning:2.1.0'
使用部分
public class ScanDemoActivity extends WeChatCameraScanActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OpenCV.initOpenCV();
WeChatQRCodeDetector.init(this);
......
}
}
<FrameLayout ...>
<androidx.camera.view.PreviewView
android:id="@+id/previewView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.king.view.viewfinderview.ViewfinderView
android:id="@+id/viewfinderView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/ivFlashlight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/camera_scan_flashlight_selector"/>
</FrameLayout>
具体完整打印信息:https://f.ws59.cn/f/drlh0j87t01
OpenCV.initOpenCV();
WeChatQRCodeDetector.init(this);
这个初始化放错地方了,需要提前初始化,建议放到 MainActivity
,WeChatCameraScanActivity 里面都已经开始使用了,你再初始化,顺序错了。
OpenCV.initOpenCV(); WeChatQRCodeDetector.init(this);
这个初始化放错地方了,需要提前初始化,建议放到
MainActivity
,WeChatCameraScanActivity 里面都已经开始使用了,你再初始化,顺序错了。
我重新放置到MainActivity里,再次进入扫描界面还是会报一样的错误
找到原因了,是由于我还引入了百度地图库,导致两个libc++_shared.so冲突
当时看到这个编译错误,直接使用下面方法保留了一个 刚才比较看编译最终将百度地图库中的libc++_shared.so打包进apk了 我将百度地图库中的libc++_shared.so删了就ok了
packagingOptions {
pickFirst 'lib/x86/libc++_shared.so'
pickFirst 'lib/x86_64/libc++_shared.so'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
}
找到原因了,是由于我还引入了百度地图库,导致两个libc++_shared.so冲突
当时看到这个编译错误,直接使用下面方法保留了一个 刚才比较看编译最终将百度地图库中的libc++_shared.so打包进apk了 我将百度地图库中的libc++_shared.so删了就ok了
packagingOptions { pickFirst 'lib/x86/libc++_shared.so' pickFirst 'lib/x86_64/libc++_shared.so' pickFirst 'lib/arm64-v8a/libc++_shared.so' pickFirst 'lib/armeabi-v7a/libc++_shared.so' }
好的,记得关掉此问题。
03-30 11:51:23.370 E/cv::error()(32381): OpenCV(4.9.0) Error: Requested object was not found (could not open directory: /data/app/***-RNwWSDNOyjf7H-aDC_PxVg==/base.apk!/lib/arm64-v8a) in glob_rec, file /home/king/work/opencv/opencv-4.9.0/modules/core/src/glob.cpp, line 279