を使用してマウントされた、Google の APK 拡張ライブラリの OBB ファイル内の png ファイルを指すPixmap
から をインスタンス化しています。OBB ファイルは暗号化されています。FileHandle
StorageManager
これは、物理 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
どうしたの?