暗号化された obb ファイルを使用する Android アプリを開発しています。この obb ファイルは 3 つのファイルで構成されています (jobb ツールで作成しました)。ほとんどのデバイスでは問題ありませんが、3 つのデバイスでは ERROR_COULD_NOT_MOUNT が発生します。そして、私はそれを修正する方法を理解していません。エラーなしでアプリを配布したい :) 助けてください! :)
私が試したこと: 1)obbファイルをアンマウントしてマウントします。2) 「読み取り専用」属性のないフォルダーから obb ファイルを作成します。しかし、それはすべてうまくいきません。
問題を再現する手順 (該当する場合はサンプル コードを含む)。 1) フォルダーを作成し、その中に 3 つの異なるファイルを入れます。2) 手順 1 のフォルダーから obb ファイルを作成します。 3) このファイルをアプリからマウントしてみます (以下のサンプル コード)。
最終ファイル mainFile = new File(Environment.getExternalStorageDirectory() + "/Android/obb/" + packageName + "/" +「メイン」。+ versionCode + "." + パッケージ名 + ".obb"); OnObbStateChangeListener リスナー = 新しい OnObbStateChangeListener() { @オーバーライド public void onObbStateChange(String path, int state) { super.onObbStateChange(パス、状態); if (state == OnObbStateChangeListener.MOUNTED) { doNextSteps(); そうでなければ (状態 == OnObbStateChangeListener.ERROR_COULD_NOT_MOUNT) { Toast.makeText(getApplicationContext(), "ERROR_COULD_NOT_MOUNT", Toast.LENGTH_LONG).show(); } } }; if (!storageManager.isObbMounted(mainFile.getAbsolutePath())) { storageManager.unmountObb(mainFile.getAbsolutePath(), true, リスナー); storageManager.mountObb(mainFile.getAbsolutePath(), "password_string", listener); } そうしないと { doNextSteps(); }
どうしたの。 次のデバイスで「ERROR_COULD_NOT_MOUNT」エラーが発生しました: 1) HTC PJ401 One S; 2) サムスン GT-I9505 ギャラクシー S IV; 3) Samsung SM-N9005 Galaxy Note 3. ただし、Samsung SM-N900T Galaxy Note 3 および Samsung GT-I9500 Galaxy S IV ではすべて問題ありません。