jenly1314 / WeChatQRCode

⛄ 基于OpenCV开源的微信二维码引擎移植的二维码扫码识别库
https://jenly1314.github.io/WeChatQRCode/
Apache License 2.0
607 stars 120 forks source link

2.0版本代码构建、运行崩溃 #39

Closed zhangxaochen closed 1 year ago

zhangxaochen commented 1 year ago

最新代码,直接构建、安装、运行,启动就报错,无法加载库文件,请教应该怎么排查?

OpenCV error: Cannot load info library for OpenCV
Library list: ""
First attempt to load libs
Trying to init OpenCV libs
Trying to load library opencv_java4
Cannot load library "opencv_java4"

全部相关日志如下:

---------------------------- PROCESS STARTED (6705) for package com.king.wechat.qrcode.app ----------------------------
2023-08-18 08:04:33.884  6705-6705  GraphicsEnvironment     com.king.wechat.qrcode.app           V  ANGLE Developer option for 'com.king.wechat.qrcode.app' set to: 'default'
2023-08-18 08:04:33.885  6705-6705  GraphicsEnvironment     com.king.wechat.qrcode.app           V  ANGLE GameManagerService for com.king.wechat.qrcode.app: false
2023-08-18 08:04:33.886  6705-6705  GraphicsEnvironment     com.king.wechat.qrcode.app           V  Neither updatable production driver nor prerelease driver is supported.
2023-08-18 08:04:33.891  6705-6705  NetworkSecurityConfig   com.king.wechat.qrcode.app           D  No Network Security Config specified, using platform default
2023-08-18 08:04:33.892  6705-6705  NetworkSecurityConfig   com.king.wechat.qrcode.app           D  No Network Security Config specified, using platform default
2023-08-18 08:04:33.893  6705-6705  Compatibil...geReporter com.king.wechat.qrcode.app           D  Compat change id reported: 183155436; UID 10239; state: ENABLED
2023-08-18 08:04:33.905  6705-8005  libMEOW                 com.king.wechat.qrcode.app           D  meow new tls: 0xb400007107a29090
2023-08-18 08:04:33.905  6705-8005  libMEOW                 com.king.wechat.qrcode.app           D  meow reload base cfg path: na
2023-08-18 08:04:33.905  6705-8005  libMEOW                 com.king.wechat.qrcode.app           D  meow reload overlay cfg path: na
2023-08-18 08:04:33.906  6705-8005  libMEOW_gift            com.king.wechat.qrcode.app           I  open /data/performance/gift/arc.ini
2023-08-18 08:04:33.906  6705-8005  QT                      com.king.wechat.qrcode.app           E  [QT]file does not exist
2023-08-18 08:04:33.907  6705-8005  libMEOW                 com.king.wechat.qrcode.app           D  applied 1 plugins for [com.king.wechat.qrcode.app]:
2023-08-18 08:04:33.907  6705-8005  libMEOW                 com.king.wechat.qrcode.app           D    plugin 1: [libMEOW_gift.so]: 0xb4000070c79ab820
2023-08-18 08:04:33.908  6705-8005  libMEOW                 com.king.wechat.qrcode.app           D  rebuild call chain: 0xb400007107a19080
2023-08-18 08:04:33.908  6705-8005  libMEOW                 com.king.wechat.qrcode.app           D  meow delete tls: 0xb400007107a29090
2023-08-18 08:04:33.961  6705-6705  WhiteNavigationLice     com.king.wechat.qrcode.app           I  Modify naviBarColor to 0xFFF0F0F0, and windowBackgroundColor is -1   /windowIsTranslucent:false
2023-08-18 08:04:33.980  6705-6705  MSYNC3-Var...efreshRate com.king.wechat.qrcode.app           I  Variable refreshrate is disabled
2023-08-18 08:04:33.995  6705-6705  chat.qrcode.app         com.king.wechat.qrcode.app           W  Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (unsupported, reflection, allowed)
2023-08-18 08:04:33.995  6705-6705  chat.qrcode.app         com.king.wechat.qrcode.app           W  Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (unsupported, reflection, allowed)
2023-08-18 08:04:33.999  6705-6705  Compatibil...geReporter com.king.wechat.qrcode.app           D  Compat change id reported: 210923482; UID 10239; state: ENABLED
2023-08-18 08:04:34.039  6705-6705  OpenCV/StaticHelper     com.king.wechat.qrcode.app           D  Trying to get library list
2023-08-18 08:04:34.041  6705-6705  OpenCV/StaticHelper     com.king.wechat.qrcode.app           E  OpenCV error: Cannot load info library for OpenCV
2023-08-18 08:04:34.041  6705-6705  OpenCV/StaticHelper     com.king.wechat.qrcode.app           D  Library list: ""
2023-08-18 08:04:34.041  6705-6705  OpenCV/StaticHelper     com.king.wechat.qrcode.app           D  First attempt to load libs
2023-08-18 08:04:34.041  6705-6705  OpenCV/StaticHelper     com.king.wechat.qrcode.app           D  Trying to init OpenCV libs
2023-08-18 08:04:34.041  6705-6705  OpenCV/StaticHelper     com.king.wechat.qrcode.app           D  Trying to load library opencv_java4
2023-08-18 08:04:34.042  6705-6705  OpenCV/StaticHelper     com.king.wechat.qrcode.app           D  Cannot load library "opencv_java4"
2023-08-18 08:04:34.042  6705-6705  System.err              com.king.wechat.qrcode.app           W  java.lang.UnsatisfiedLinkError: dlopen failed: library "libopencv_java4.so" not found
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at java.lang.Runtime.loadLibrary0(Runtime.java:1077)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at java.lang.Runtime.loadLibrary0(Runtime.java:998)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at java.lang.System.loadLibrary(System.java:1661)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at org.opencv.android.StaticHelper.loadLibrary(StaticHelper.java:64)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at org.opencv.android.StaticHelper.initOpenCVLibs(StaticHelper.java:95)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at org.opencv.android.StaticHelper.initOpenCV(StaticHelper.java:39)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at org.opencv.android.OpenCVLoader.initDebug(OpenCVLoader.java:107)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at org.opencv.OpenCV.initAsync(OpenCV.java:39)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at com.king.wechat.qrcode.app.MainActivity.onCreate(MainActivity.kt:44)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.app.Activity.performCreate(Activity.java:8338)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.app.Activity.performCreate(Activity.java:8317)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1388)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3770)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3984)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:145)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:105)
2023-08-18 08:04:34.043  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2407)
2023-08-18 08:04:34.044  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.os.Handler.dispatchMessage(Handler.java:106)
2023-08-18 08:04:34.044  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.os.Looper.loopOnce(Looper.java:204)
2023-08-18 08:04:34.044  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.os.Looper.loop(Looper.java:291)
2023-08-18 08:04:34.044  6705-6705  System.err              com.king.wechat.qrcode.app           W      at android.app.ActivityThread.main(ActivityThread.java:8153)
2023-08-18 08:04:34.044  6705-6705  System.err              com.king.wechat.qrcode.app           W      at java.lang.reflect.Method.invoke(Native Method)
2023-08-18 08:04:34.044  6705-6705  System.err              com.king.wechat.qrcode.app           W      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:601)
2023-08-18 08:04:34.044  6705-6705  System.err              com.king.wechat.qrcode.app           W      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1136)
2023-08-18 08:04:34.044  6705-6705  OpenCV/StaticHelper     com.king.wechat.qrcode.app           D  First attempt to load libs fails
2023-08-18 08:04:34.044  6705-6705  OpenCV                  com.king.wechat.qrcode.app           D  Internal OpenCV library not found. Using OpenCV Manager for initialization
2023-08-18 08:04:34.047  6705-6705  OpenCVManager/Helper    com.king.wechat.qrcode.app           D  Request new service installation
2023-08-18 08:04:34.064  6705-6705  Compatibil...geReporter com.king.wechat.qrcode.app           D  Compat change id reported: 171228096; UID 10239; state: ENABLED
2023-08-18 08:04:34.090  6705-6705  SurfaceFactory          com.king.wechat.qrcode.app           I  [static] sSurfaceFactory = com.mediatek.view.impl.SurfaceFactoryImpl@b7595b7
2023-08-18 08:04:34.102  6705-6705  VRI[Package not found]  com.king.wechat.qrcode.app           D  hardware acceleration = true, forceHwAccelerated = false
2023-08-18 08:04:34.122  6705-6705  libMEOW                 com.king.wechat.qrcode.app           D  meow new tls: 0xb400007107a29090
2023-08-18 08:04:34.122  6705-6705  libMEOW                 com.king.wechat.qrcode.app           D  applied 1 plugins for [com.king.wechat.qrcode.app]:
2023-08-18 08:04:34.122  6705-6705  libMEOW                 com.king.wechat.qrcode.app           D    plugin 1: [libMEOW_gift.so]: 0xb4000070c79ab820
2023-08-18 08:04:34.122  6705-6705  libMEOW                 com.king.wechat.qrcode.app           D  rebuild call chain: 0xb400007107a19080
2023-08-18 08:04:34.123  6705-6705  InputTransport          com.king.wechat.qrcode.app           D  Create ARC handle: 0xb400006f27a09160
2023-08-18 08:04:34.128  6705-6705  chat.qrcode.app         com.king.wechat.qrcode.app           E  No implementation found for long org.opencv.wechat_qrcode.WeChatQRCode.WeChatQRCode_0(java.lang.String, java.lang.String, java.lang.String, java.lang.String) (tried Java_org_opencv_wechat_1qrcode_WeChatQRCode_WeChatQRCode_10 and Java_org_opencv_wechat_1qrcode_WeChatQRCode_WeChatQRCode_10__Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2)
2023-08-18 08:04:34.130  6705-6705  AndroidRuntime          com.king.wechat.qrcode.app           D  Shutting down VM
2023-08-18 08:04:34.131  6705-6705  AndroidRuntime          com.king.wechat.qrcode.app           E  FATAL EXCEPTION: main
                                                                                                    Process: com.king.wechat.qrcode.app, PID: 6705
                                                                                                    java.lang.UnsatisfiedLinkError: No implementation found for long org.opencv.wechat_qrcode.WeChatQRCode.WeChatQRCode_0(java.lang.String, java.lang.String, java.lang.String, java.lang.String) (tried Java_org_opencv_wechat_1qrcode_WeChatQRCode_WeChatQRCode_10 and Java_org_opencv_wechat_1qrcode_WeChatQRCode_WeChatQRCode_10__Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2)
                                                                                                        at org.opencv.wechat_qrcode.WeChatQRCode.WeChatQRCode_0(Native Method)
                                                                                                        at org.opencv.wechat_qrcode.WeChatQRCode.<init>(WeChatQRCode.java:44)
                                                                                                        at com.king.wechat.qrcode.WeChatQRCodeDetector.initWeChatQRCode(WeChatQRCodeDetector.java:87)
                                                                                                        at com.king.wechat.qrcode.WeChatQRCodeDetector.init(WeChatQRCodeDetector.java:44)
                                                                                                        at com.king.wechat.qrcode.app.MainActivity.onCreate(MainActivity.kt:46)
                                                                                                        at android.app.Activity.performCreate(Activity.java:8338)
                                                                                                        at android.app.Activity.performCreate(Activity.java:8317)
                                                                                                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1388)
                                                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3770)
                                                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3984)
                                                                                                        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
                                                                                                        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:145)
                                                                                                        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:105)
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2407)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:204)
                                                                                                        at android.os.Looper.loop(Looper.java:291)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8153)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:601)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1136)
2023-08-18 08:04:34.131  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at org.opencv.wechat_qrcode.WeChatQRCode.WeChatQRCode_0(Native Method)
2023-08-18 08:04:34.131  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at org.opencv.wechat_qrcode.WeChatQRCode.<init>(WeChatQRCode.java:44)
2023-08-18 08:04:34.131  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at com.king.wechat.qrcode.WeChatQRCodeDetector.initWeChatQRCode(WeChatQRCodeDetector.java:87)
2023-08-18 08:04:34.131  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at com.king.wechat.qrcode.WeChatQRCodeDetector.init(WeChatQRCodeDetector.java:44)
2023-08-18 08:04:34.131  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at com.king.wechat.qrcode.app.MainActivity.onCreate(MainActivity.kt:46)
2023-08-18 08:04:34.131  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.app.Activity.performCreate(Activity.java:8338)
2023-08-18 08:04:34.131  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.app.Activity.performCreate(Activity.java:8317)
2023-08-18 08:04:34.131  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1388)
2023-08-18 08:04:34.131  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3770)
2023-08-18 08:04:34.132  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3984)
2023-08-18 08:04:34.132  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
2023-08-18 08:04:34.132  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:145)
2023-08-18 08:04:34.132  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:105)
2023-08-18 08:04:34.132  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2407)
2023-08-18 08:04:34.132  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.os.Handler.dispatchMessage(Handler.java:106)
2023-08-18 08:04:34.132  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.os.Looper.loopOnce(Looper.java:204)
2023-08-18 08:04:34.132  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.os.Looper.loop(Looper.java:291)
2023-08-18 08:04:34.132  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at android.app.ActivityThread.main(ActivityThread.java:8153)
2023-08-18 08:04:34.132  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at java.lang.reflect.Method.invoke(Native Method)
2023-08-18 08:04:34.132  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:601)
2023-08-18 08:04:34.132  6705-6705  ExceptionHandle         com.king.wechat.qrcode.app           I  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1136)
2023-08-18 08:04:34.160  6705-6705  Process                 com.king.wechat.qrcode.app           I  Sending signal. PID: 6705 SIG: 9
---------------------------- PROCESS ENDED (6705) for package com.king.wechat.qrcode.app ----------------------------
jenly1314 commented 1 year ago
  1. 确认ABI过滤与可选依赖的so是否一致?

    defaultConfig {
    
        //...
    
        ndk {
            //设置支持的 SO 库架构(开发者可以根据需要,选择一个或多个平台的 so)
            abiFilters 'armeabi-v7a' // , 'arm64-v8a', 'x86', 'x86_64'
        }
    }
  2. 确认集成步骤是否正确?(可参考demo app的源码示例,进行检查看是否有遗漏步骤,来排除客观因素;也可直接下载demo app进行测试验证;Download
zhangxaochen commented 1 year ago

clone 后代码完全不做修改,直接编译运行的此demo app工程,没有集成到别的工程里 abiFilters 'armeabi-v7a' 改成abiFilters 'arm64-v8a' 也有相同的报错

adb shell getprop ro.product.cpu.abilist
输出:arm64-v8a,armeabi-v7a,armeabi

为什么Trying to load library opencv_java4 会报错Cannot load library "opencv_java4"呢?

  1. 确认ABI过滤与可选依赖的so是否一致?
    defaultConfig {

        //...

        ndk {
            //设置支持的 SO 库架构(开发者可以根据需要,选择一个或多个平台的 so)
            abiFilters 'armeabi-v7a' // , 'arm64-v8a', 'x86', 'x86_64'
        }
    }
  1. 确认集成步骤是否正确?(可参考demo app的源码示例,进行检查看是否有遗漏步骤,来排除客观因素;也可直接下载demo app进行测试验证;Download
zhangxaochen commented 1 year ago

https://github.com/jenly1314/WeChatQRCode/issues/26 https://github.com/jenly1314/WeChatQRCode/issues/25 同问题,rebuild解决