File.listFiles()崩溃无效的UTF-8字符

时间:2017-10-29 16:29:34

标签: android utf-8

手机存储空间中的某些文件夹包含以下文件:

  • dzG럫SAᡑῑ.sg
  • 존Ὣ졼)。sg

因此,当我尝试使用File.listFiles()函数从此文件夹中读取文件时,我的应用程序崩溃了:

  

应用程序中的JNI检测错误:输入无效修改的UTF-8:   非法启动字节......字符串:'dzG럫saᡑῑ.sg'

我发现哪个应用创建了它们,但没关系,例如,如果其他用户的手机内存中有相似的文件,我不能让他们删除它

我只是想避免应用崩溃

即使尝试... catch也无济于事(导致JNI / LINUX / C ++出错):

    try {
        ... = dir.listFiles();
    } catch (RuntimeException e) {
        //
    }

那我该如何解决这个问题?

同样的问题File.listFiles crashes for invalid UTF-8 characters

但是回复签名apk并不好,它甚至与这个问题有什么关系? 还有其他解决方案吗?

似乎debug apk自动签名(带有调试证书):

  

从IDE,Android Studio运行或调试项目时   使用生成的调试证书自动为您的APK签名   Android SDK工具。第一次运行或调试项目时   Android Studio,IDE自动创建调试密钥库和   $ HOME / .android / debug.keystore中的证书,并设置密钥库   和密码。

1 个答案:

答案 0 :(得分:0)

作为API> = 26的解决方法,您可以使用DirectoryStream