2

我正在PixmapFileHandleGoogle 的 APK 扩展库(使用StorageManager. OBB 文件已加密。

这在我测试运行 Android 5.1 和 4.3 且没有物理 SD 卡的设备上运行良好,但无法在运行 Android 4.4.1 且有物理 SD 卡的设备上运行。我越来越:

加载像素图时出错:流的解码器初始化失败

这是整个堆栈跟踪:

08-08 15:01:18.839 30228-30285/com.yasesprox.solarball.android W/dalvikvm: threadid=11: 线程退出未捕获异常 (group=0x41bbcd58)
    --------- /dev/log/system 的开头
08-08 15:01:18.859 30228-30285/com.yasesprox.solarball.android E/AndroidRuntime:致命异常:GLThread 3615
    进程:com.yasesprox.solarball.android,PID:30228
    com.badlogic.gdx.utils.GdxRuntimeException:com.badlogic.gdx.utils.GdxRuntimeException:无法加载文件:/mnt/obb/e0fb6be85a09d3afdfb4453fcca775e3/stage_1/screenshot.png
            在 com.badlogic.gdx.assets.AssetManager.handleTaskError(AssetManager.java:536)
            在 com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:356)
            在 com.yasesprox.solarball.extensions.SolarBallStage.loading(SolarBallStage.java:45)
            在 com.yasesprox.solarball.misc.LoadingStage.update(LoadingStage.java:36)
            在 com.yasesprox.solarball.misc.LoadingStage.act(LoadingStage.java:46)
            在 com.yasesprox.solarball.extensions.SolarBallGame.render(SolarBallGame.java:101)
            在 com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:422)
            在 android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1523)
            在 android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
     引起:com.badlogic.gdx.utils.GdxRuntimeException:无法加载文件:/mnt/obb/e0fb6be85a09d3afdfb4453fcca775e3/stage_1/screenshot.png
            在 com.badlogic.gdx.graphics.Pixmap.(Pixmap.java:140)
            在 com.yasesprox.solarball.data.StageDataProvider.instantiateScreenshot(StageDataProvider.java:41)
            在 com.yasesprox.solarball.data.StageDataProvider.(StageDataProvider.java:24)
            在 com.yasesprox.solarball.data.StageDataProviderLoader.loadSync(StageDataProviderLoader.java:23)
            在 com.yasesprox.solarball.data.StageDataProviderLoader.loadSync(StageDataProviderLoader.java:11)
            在 com.badlogic.gdx.assets.AssetLoadingTask.handleAsyncLoader(AssetLoadingTask.java:123)
            在 com.badlogic.gdx.assets.AssetLoadingTask.update(AssetLoadingTask.java:89)
            在 com.badlogic.gdx.assets.AssetManager.updateTask(AssetManager.java:477)
            在 com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:354)
            在 com.yasesprox.solarball.extensions.SolarBallStage.loading(SolarBallStage.java:45)
            在 com.yasesprox.solarball.misc.LoadingStage.update(LoadingStage.java:36)
            在 com.yasesprox.solarball.misc.LoadingStage.act(LoadingStage.java:46)
            在 com.yasesprox.solarball.extensions.SolarBallGame.render(SolarBallGame.java:101)
            在 com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:422)
            在 android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1523)
            在 android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
     引起:java.io.IOException:加载像素图时出错:流的解码器初始化失败
            在 com.badlogic.gdx.graphics.g2d.Gdx2DPixmap.(Gdx2DPixmap.java:57)
            在 com.badlogic.gdx.graphics.Pixmap.(Pixmap.java:138)
            在 com.yasesprox.solarball.data.StageDataProvider.instantiateScreenshot(StageDataProvider.java:41)
            在 com.yasesprox.solarball.data.StageDataProvider.(StageDataProvider.java:24)
            在 com.yasesprox.solarball.data.StageDataProviderLoader.loadSync(StageDataProviderLoader.java:23)
            在 com.yasesprox.solarball.data.StageDataProviderLoader.loadSync(StageDataProviderLoader.java:11)
            在 com.badlogic.gdx.assets.AssetLoadingTask.handleAsyncLoader(AssetLoadingTask.java:123)
            在 com.badlogic.gdx.assets.AssetLoadingTask.update(AssetLoadingTask.java:89)
            在 com.badlogic.gdx.assets.AssetManager.updateTask(AssetManager.java:477)
            在 com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:354)
            在 com.yasesprox.solarball.extensions.SolarBallStage.loading(SolarBallStage.java:45)
            在 com.yasesprox.solarball.misc.LoadingStage.update(LoadingStage.java:36)
            在 com.yasesprox.solarball.misc.LoadingStage.act(LoadingStage.java:46)
            在 com.yasesprox.solarball.extensions.SolarBallGame.render(SolarBallGame.java:101)
            在 com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:422)
            在 android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1523)
            在 android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)

我之前从同一个地方加载了其他资源Pixmap,它们在所有设备上都可以正常工作;就是这个Pixmap

此外,如果我使用(该文件位于 Android 项目的“assets”文件夹中)Pixmap从内部存储加载它,那么在所有设备上都可以正常工作。Gdx.files.internal

这是怎么回事?

4

0 回答 0