7

我正在一个使用 OpenCV 3.1.0 库的 Android Studio 2.2 的 android 项目中工作。我根据这个答案导入了库。情况如下:

  • 当我为 API >= 21(确切地说是 API 23)的设备编译项目时,一切顺利。
  • 当我为 API < 21(确切地说是 API 19,我想要支持的最低 API)的设备编译项目时,我收到以下编译错误:

摇篮日志

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)...

我发现了这些类似的问题:

在他们两个中,解决方案是将compileSdkVersion最小设置为 21(camera2引入 API 的版本)并确保build.gradle项目文件和 OpenCV 匹配。

不幸的是,它对我不起作用。我仍然得到同样的错误。任何想法?

我的代码在这里可用:Github 存储库

谢谢你的帮助!

4

1 回答 1

6

最后,感谢@JavierMollá,我找到了一个临时解决方案。

关闭Instant Run解决了这个问题。转到File > Settings > Build, Execution, Deployment > InstantRun并取消选中Enable Instant Run to hot swap code...

禁用即时运行

Instant Run 是 Android Studio 的一个主要功能,但不幸的是,它似乎仍在进行中......正如@AndreKR 所暗示的,它可能与这个问题#212672相关。

于 2016-10-03T10:19:10.900 回答