首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓10中的FIleObserver NoSuchMethodError

安卓10中的FIleObserver NoSuchMethodError
EN

Stack Overflow用户
提问于 2021-12-25 17:19:08
回答 1查看 58关注 0票数 1

我有一个FileObserver(File dir),它在Android11中工作得很好,但是在Android10中,即使当我试图访问自己的应用程序私有文件夹(外部sdcard)时,Android10中的LogCat 也会崩溃

代码语言:javascript
运行
复制
E/AndroidRuntime(24651): java.lang.NoSuchMethodError: No direct method <init>(Ljava/io/File;)V
      in class Landroid/os/FileObserver; or its super classes (declaration of
      'android.os.FileObserver' appears in /system/framework/framework.jar!classes2.dex)
E/AndroidRuntime(24651):     at com.floritfoto.apps.xvf.FileChooser$1.<init>(FileChooser.java:570)
E/AndroidRuntime(24651):     at com.floritfoto.apps.xvf.FileChooser.watchdir(FileChooser.java:570)
E/AndroidRuntime(24651):     at com.floritfoto.apps.xvf.FileChooser.access$500(FileChooser.java:53)

我的代码非常简单:

代码语言:javascript
运行
复制
private void watchdir(final File dir) {
    if (observer != null) {
        observer.stopWatching();
        observer = null;
    }
    observer = new FileObserver(dir) {   // <===== CRASHES HERE
        @Override
        public void onEvent(int event, String path) {
            event &= FileObserver.ALL_EVENTS;
            ....
        }
    };
    observer.startWatching();
}

observer = new FileObserver(dir.getAbsolutePath())更改observer = new FileObserver(dir.getAbsolutePath())很好,但FileObserver(String path)已弃用

我的应用程序有compileSdkVersion 31targetSdkVersion 31minSdkVersion 14

至少在某种程度上这个错误曾被报道过,但还没有提供任何解决方案。

编辑:崩溃是在Android9,而不是10。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-25 18:17:43

是API级别29的新版本。。您的minSdkVersion为14,您的代码将在API 28及更低级别上出现此错误。您应该得到Lint警告以及类似的警告,即FileObserver(File)比您的minSdkVersion更新。

你的选择是:

  1. 在所有API级别上使用FileObserver(String),尽管有不推荐的警告。
  2. 在APILevel14-28上使用FileObserver(String),在API级别29+上使用FileObserver(File),使用Build.VERSION.SDK_INT来确定应用程序正在运行的设备的API级别。
  3. 将您的minSdkVersion设置为29。
  4. 只在API级别的FileObserver上使用29+,并跳过任何依赖于旧设备的特性。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70481619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档