【问题标题】:Android try with resources no method found close()Android 尝试使用资源未找到方法 close()
【发布时间】:2020-08-28 10:22:13
【问题描述】:

我正在使用 android MediaMetaDataRetriever,它在 android 应用程序中实现 AutoCloseable。我有以下代码

try (final MediaMetadataRetriever retriever = new MediaMetadataRetriever()) {
    retriever.setDataSource(videoUri.getPath());
    return retriever.getFrameAtTime(10, getFrameOption());
}

minSDK > 21

但我遇到了以下崩溃

No virtual method close()V in class Landroid/media/MediaMetadataRetriever; or its super classes (declaration of ‘android.media.MediaMetadataRetriever’ appears in /system/framework/framework.jar

如果MediaMetadataRetriever implements AutoCloseable会发生这种情况

【问题讨论】:

  • 您使用的是什么 API 级别?
  • 我不再从事这个项目,但我会作为开发者之一来发表评论

标签: java android try-with-resources


【解决方案1】:

我遇到了同样的问题,所以我在 Kotlin 中创建了自己的 MediaMetaDataRetriever 子类:

class MyMediaMetadataRetriever : MediaMetadataRetriever(), AutoCloseable {

   override fun close() {
      release()
   }

}

Java(未经测试):

public class MyMediaMetadataRetriever extends MediaMetadataRetriever implements AutoCloseable {

   public MyMediaMetadataRetriever() {
      super();
   }

   @Override
   public void close() {
      release();
   }

}

【讨论】:

  • 你找到原因了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多