我正在使用 Android Studio 2.2 开发一个使用 OpenCV 3.1.0 库的 android 项目。我是按照这个answer导入库的.情况如下:
- 当我为 API >= 21(正好是 API 23)的设备编译项目时,一切顺利。
- 当我为 API < 21(恰好是 API 19,我要支持的最低 API)的设备编译项目时,出现以下编译错误:
Gradle 日志
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformClassesWithInstantRunForDebug'.
> java.lang.ClassNotFoundException: android.hardware.camera2.CameraAccessException
* Try:
Run with --info or --debug option to get more log output.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithInstantRunForDebug'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)...
我发现了这些类似的问题:
- Error: package android.hardware.camera2 does not exist OpenCV
- Can't import import android.hardware.camera2 classes
在它们中,解决方案是将 compileSdkVersion
设置为最小 21(引入 camera2
API 的版本)并确保 build.gradle
项目的文件和 OpenCV 匹配。
不幸的是,它对我不起作用。我仍然遇到同样的错误。有什么想法吗?
我的代码在这里可用:Github repository .
感谢您的帮助!
最佳答案
最后,感谢@JavierMollá,我找到了一个暂时的解决方案。
关闭 Instant Run 解决了这个问题。转到 File > Settings > Build, Execution, Deployment > InstantRun
并取消选中 Enable Instant Run to hot swap code...
。
Instant Run 是 Android Studio 的一项主要功能,但不幸的是,它似乎仍在进行中......正如@AndreKR 所建议的,它可能与此问题有关 #212672 .
关于android - ClassNotFoundException : android. hardware.camera2.CameraAccessException 与 OpenCV 3.1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39770355/