【问题标题】:File.listFiles crashes for invalid UTF-8 charactersFile.listFiles 因无效的 UTF-8 字符而崩溃
【发布时间】:2025-12-25 13:25:16
【问题描述】:

应用程序在目录中导航文件时崩溃。崩溃日志如下:

JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xf6
art/runtime/check_jni.cc:65]     string: 'Test Color.X7��37meaba'

java.io.File.list(File.java:742)
java.io.File.listFiles(File.java:784)

【问题讨论】:

    标签: android file


    【解决方案1】:

    在运行此案例之前签署 apk 以避免崩溃。

    【讨论】:

    • 安全的解决方法是完美的。我可以删除产生问题的文件,但对于其他编码国家的开发人员来说,这可能是一场噩梦!
    • 这似乎不再起作用了。我只是擦除了模拟器的数据以继续开发,并尝试不添加非 ascii 字符的文件。
    • 听起来很疯狂,如果我还在开发我的应用程序,我为什么要签名?
    • 正如 Tano 所说,删除文件会让您感到疲倦和无聊。签署 APK 让您如释重负。
    • @GaneshKanna..为什么未签名的 apk 崩溃了.. 背后的原因是什么?
    【解决方案2】:

    如果您的 apk 外部(未捆绑)的文件发生这种情况,请在真实设备上进行测试。对我来说,模拟器导致了这个问题。

    【讨论】: