2

を使用してマウントされた、Google の APK 拡張ライブラリの OBB ファイル内の png ファイルを指すPixmapから をインスタンス化しています。OBB ファイルは暗号化されています。FileHandleStorageManager

これは、物理 SD カードなしで Android 5.1 および 4.3 を実行してテストしたデバイスでは正常に動作しますが、物理 SD カードを使用して Android 4.4.1 を実行するデバイスでは動作しません。私は得ています:

ピックスマップのロード中にエラーが発生しました: ストリームのデコーダの初期化に失敗しました

スタック トレース全体を次に示します。

08-08 15:01:18.839 30228-30285/com.yasesprox.solarball.android W/dalvikvm﹕ threadid=11: キャッチされない例外で終了するスレッド (グループ = 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