运行项目编写代码之后提示爆了如下错误: (错误得右移才能看到)
FATAL EXCEPTION: main
Process: com.guo.facecollection, PID: 31454
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1543586025, result=-1, data=Intent { dat=content://media/... flg=0x41 clip={image/* video/* {U(content)}} }} to activity {com.guo.facecollection/com.guo.facecollection.MainActivity}: CvException [org.opencv.core.CvException: cv::Exception: OpenCV(4.9.0) /home/ci/opencv/modules/objdetect/src/cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'detectMultiScale'
]
at android.app.ActivityThread.deliverResults(ActivityThread.java:5683)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5727)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:67)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2545)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:222)
at android.os.Looper.loop(Looper.java:314)
at android.app.ActivityThread.main(ActivityThread.java:8530)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:561)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1010)
Caused by: CvException [org.opencv.core.CvException: cv::Exception: OpenCV(4.9.0) /home/ci/opencv/modules/objdetect/src/cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'detectMultiScale'
]
at org.opencv.objdetect.CascadeClassifier.detectMultiScale_5(Native Method)
at org.opencv.objdetect.CascadeClassifier.detectMultiScale(CascadeClassifier.java:195)
at com.guo.facecollection.MainActivity.handlePickedImage(MainActivity.kt:104)
at com.guo.facecollection.MainActivity.onCreate$lambda$1(MainActivity.kt:57)
at com.guo.facecollection.MainActivity.$r8$lambda$ljonoLGQ7FrAW3xK0wk7FL3fE_Y(Unknown Source:0)
at com.guo.facecollection.MainActivity$$ExternalSyntheticLambda0.onActivityResult(Unknown Source:4)
at androidx.activity.result.ActivityResultRegistry.doDispatch(ActivityResultRegistry.java:414)
at androidx.activity.result.ActivityResultRegistry.dispatchResult(ActivityResultRegistry.java:371)
at androidx.activity.ComponentActivity.onActivityResult(ComponentActivity.java:845)
at android.app.Activity.dispatchActivityResult(Activity.java:9255)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5676)
原因: 没有在app模块载入opencv的模型.
解决: 找到opencv模块目录下`haarcascade_frontalface_alt.xml` 文件并将其复制到在 app 模块的 main 目录下新建 `assets` (没有就新建).