【问题标题】:Why doesn't the activity resume properly?为什么活动不能正常恢复?
【发布时间】:2019-06-26 15:57:15
【问题描述】:

由于按下最右边的按钮查看打开的应用程序或让手机进入睡眠状态,我正在尝试让程序在 onPause 和 onStop 被调用后正确恢复。我不熟悉正确的调用是什么。我查找了一些关于此的信息,但我发现的只是人们说在 onPause 中调用 super.onPause 和在 onResume 中调用 super.onResume 然后编写我的代码。然而,这段代码不是我的,并且在恢复时崩溃并出现错误:

java.lang.RuntimeException: Unable to resume activity {org.tensorflow.lite.examples.detection/org.tensorflow.lite.examples.detection.DetectorActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.Camera.startPreview()' on a null object reference
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.Camera.startPreview()' on a null object reference

代码可以在以下位置找到: https://github.com/tensorflow/examples/blob/master/lite/examples/object_detection/android/app/src/main/java/org/tensorflow/lite/examples/detection/LegacyCameraConnectionFragment.java


关于这一切,我有两个问题:

  • 我可以通过注释掉第 185-187 行让相机正常重启,但我不知道这是否是解决此问题的正确方法。评论?想法?

  • 即使这样有效,主要活动也不会重新启动。这是这里的实际主要问题。我还认为这段代码一定有问题,但无法弄清楚它是什么。关于如何解决它的任何建议?


主要活动代码链接: https://github.com/tensorflow/examples/blob/master/lite/examples/object_detection/android/app/src/main/java/org/tensorflow/lite/examples/detection/CameraActivity.java

【问题讨论】:

  • 这个答案可能是您想要的:stackoverflow.com/a/18729478/2711811 - 在第 152 行添加侦听器调用。似乎是示例中的错误 - 或者 - 未考虑竞争条件。基本上相机设置为空 onPause 但onSurfaceTextureAvailable(设置相机)不会再次调用,因为视图已经可用。 (主要活动没有开始,因为它的一个片段在 onResume 期间失败。)
  • @Andy 但是为什么注释掉我上面提到的行不会重新启动主要活动?既然onsurfaceTextureAvailable 已经运行了,难道一切都已经准备就绪了吗?

标签: java android tensorflow-lite


【解决方案1】:

由于某种原因,我在问题中所做和提到的更改并没有解决问题。我想这与调用 onStop 后未正确设置回调或新的后台线程发生更改有关?

为了修复它,我添加了

textureView.getSurfaceTextureListener().onSurfaceTextureAvailable(textureView.getSurfaceTexture(), textureView.getWidth(), textureView.getHeight());

在 Legacy... .java 文件的第 152 行之前。

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多