0

APK 拡張ファイルを使用するようにアプリを変換しようとしていますが、何らかの理由で、以下のコードが APK 拡張ファイルへのパスを見つけることができません...

static String[] getAPKExpansionFiles(Context ctx, int mainVersion, int patchVersion) {
    Log.v(TAG, "Utils.getAPKExpansionFiles [27] mainVersion is " + mainVersion + " patchVersion = " + patchVersion );
    String packageName = ctx.getPackageName();
    Log.v(TAG, "Utils.getAPKExpansionFiles [27] packageName is [" + packageName + "]" );
    Vector<String> ret = new Vector<String>();
    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
        Log.v(TAG, "Utils.getAPKExpansionFiles [32] MEDIA_MOUNTED" );
        // Build the full path to the app's expansion files
        File root = Environment.getExternalStorageDirectory();
        Log.v(TAG, "Utils.getAPKExpansionFiles [35] root = " + root);
        File expPath = new File(root.toString() + EXP_PATH + packageName);
        Log.v(TAG, "Utils.getAPKExpansionFiles [37] expPath " + expPath );

        // Check that expansion file path exists
        if (expPath.exists()) {
                ...
        } else {
            Log.v(TAG, "Utils.getAPKExpansionFiles [60] expPath DOES NOT EXISTS" );
        }
    } else {
        Log.v(TAG, "Utils.getAPKExpansionFiles [57] NOT MEDIA_MOUNTED" );
    }
    String[] retArray = new String[ret.size()];
    ret.toArray(retArray);
    return retArray;
}

... logcat はこれを示しています ...

03-20 21:04:24.206: V/GospelofMatthewAudiobook(10965): Utils.getAPKExpansionFiles [37] expPath /mnt/sdcard/Android/obb/com.redcricket.GospelofMatthewAudiobook
03-20 21:04:24.214: V/GospelofMatthewAudiobook(10965): Utils.getAPKExpansionFiles [60] expPath DOES NOT EXISTS

...このスクリーンショットに示されているように、パスが存在し、ファイルが存在する場合でも:

ここに画像の説明を入力 タイプミスがなく、パスが存在すると確信しています。では、なぜexpPath.exists()false を返すのでしょうか。

答えてくれてありがとうテッド...しかし、私はまだlogcatでこれを取得しています....

03-20 21:59:48.198: V/GospelofMatthewAudiobook(11988): Utils.getAPKExpansionFiles [37] expPath /mnt/sdcard/Android/obb/com.redcricket.GospelofMatthewAudiobook/main.1.com.redcricket.GospelofMatthewAudiobook.obb
03-20 21:59:48.198: V/GospelofMatthewAudiobook(11988): Utils.getAPKExpansionFiles [60] expPath DOES NOT EXISTS

...ではなく、Windowsでディレクトリを作成した可能性がありますavdadbディレクトリを作成し、APK 拡張 zip ファイルを携帯電話にプッシュするコマンドは何ですか?

4

1 に答える 1

1

ファイル自体に名前を付ける必要があります。これの代わりに:

File expPath = new File(root.toString() + EXP_PATH + packageName);

これを使って:

File expPathDir = new File(root.toString() + EXP_PATH + packageName);
File expPath = new File(expPathDir,
    String.format("main.%d.%s.obb", mainVersion, packageName));

これは、メインの拡張パックで機能します。フォーマットを使用するパッチにアクセスするには、同様の方法が必要です。String.format("patch.%d.%s.obb", patchVersion, packageName)

ファイルへのフルパスは次のようになります

/mnt/sdcard/Android/obb/com.redcricket.GospelofMatthewAudiobook/main.123./mnt/sdcard/Android/obb/com.redcricket.GospelofMatthewAudiobook.obb
于 2013-03-21T04:53:12.463 に答える