gpt4 book ai didi

android - 严格模式 AndroidBlockGuardPolicy.onReadFromDisk

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:23 24 4
gpt4 key购买 nike

我遇到了下一个问题:

StrictMode policy violation; ~duration=2235 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=65567 violation=2
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1278)
at libcore.io.BlockGuardOs.lseek(BlockGuardOs.java:162)
at java.io.RandomAccessFile.seek(RandomAccessFile.java:603)
at java.util.zip.Zip64.parseZip64EocdRecordLocator(Zip64.java:98)
at java.util.zip.ZipFile.readCentralDir(ZipFile.java:419)
at java.util.zip.ZipFile.<init>(ZipFile.java:175)
at java.util.zip.ZipFile.<init>(ZipFile.java:131)
at dalvik.system.DexPathList$Element.maybeInit(DexPathList.java:452)
at dalvik.system.DexPathList$Element.findResource(DexPathList.java:499)
at dalvik.system.DexPathList.findResource(DexPathList.java:360)
at dalvik.system.BaseDexClassLoader.findResource(BaseDexClassLoader.java:67)
at java.lang.ClassLoader.getResource(ClassLoader.java:403)
at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:442)
at ch.qos.logback.classic.util.ContextInitializer.getResource(Unknown Source)
at ch.qos.logback.classic.util.ContextInitializer.findConfigFileURLFromAssets(Unknown Source)
at ch.qos.logback.classic.util.ContextInitializer.autoConfig(Unknown Source)
at org.slf4j.impl.StaticLoggerBinder.init(Unknown Source)
at org.slf4j.impl.StaticLoggerBinder.<clinit>(Unknown Source)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
at com.my.utils.x.c(LogUtils.java:164)
at com.my.utils.x.b(LogUtils.java:65)
at com.my.Application.onCreate(Application.java:148)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1018)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4970)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1560)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5765)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

我在 3 个地方遇到了这个错误:

1) logger = LoggerFactory.getLogger(name);
2) mMessagesJobManager = new JobManager(this, configuration);
3) Fabric.with(this, new Crashlytics());

我没有在文档中找到有关这些方法的任何信息。我只找到一种解决方案 - 使用 AsyncTask,但我应该修复它吗?如果是,为什么文档不包含有关它的任何信息?最好的问候。

最佳答案

I didn't find any info about these methods in documentation

那是因为它们都不是 Android 的一部分。据推测,它们来自您添加到应用程序的库(slf4j、Fabric,我猜可能是 Firebase)。

I found only one solution - use AsyncTask, but should I fix it?

嗯,您的应用程序崩溃了。如果你想发布这个应用程序,你需要做一些事情来阻止崩溃。

在您的代码中,您将 StrictMode 配置为应用 penaltyDeath() 进行磁盘读取。因此,您的选择是:

  • 将此磁盘 I/O 移出主应用程序线程,这是通常的最佳解决方案,尽管它可能被证明是不切实际的(假设您不控制库的实现)

    <
  • 停止配置 StrictMode 以应用 penaltyDeath() 进行磁盘读取。

If yes, why documentation doesn't contain any info about it?

documentation on StrictMode ,如果那是你的意思。除此之外,我认为 Google 希望专业应用开发人员阅读书籍、参加类(class)或找到其他方式来了解 Android 应用开发,而不是直接在文档中涵盖的内容。

关于android - 严格模式 AndroidBlockGuardPolicy.onReadFromDisk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44331804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com