10

次のコマンドを実行して、apk 拡張用の暗号化された obb ファイルを取得しています。

jobb -d /home/manoj/Desktop/Test -o main.1.com.example.helloworld.obb -k "manoj" -pn com.example.helloworld -pv 1

次の例外が発生しています。何がうまくいかなかったのか教えてください。

Slop: 0   Directory Overhead: 0
Slop: 1132   Directory Overhead: 768
Partial Sector [32] writing to sector: 15
Partial Sector [32] writing to sector: 15
Partial Sector [32] writing to sector: 15
Partial Sector [331] writing to sector: 223
Partial Sector [417] writing to sector: 400
Partial Sector [406] writing to sector: 577
Partial Sector [333] writing to sector: 754
Partial Sector [223] writing to sector: 931
java.io.IOException: FAT Full (1676, 1677)
at de.waldheinz.fs.fat.Fat.allocNew(Fat.java:298)
at de.waldheinz.fs.fat.Fat.allocAppend(Fat.java:376)
at de.waldheinz.fs.fat.Fat.allocNew(Fat.java:353)
at de.waldheinz.fs.fat.ClusterChain.setChainLength(ClusterChain.java:164)
at de.waldheinz.fs.fat.ClusterChain.setSize(ClusterChain.java:132)
at de.waldheinz.fs.fat.FatFile.setLength(FatFile.java:91)
at de.waldheinz.fs.fat.FatFile.write(FatFile.java:154)
at com.android.jobb.Main$1.processFile(Main.java:495)
at com.android.jobb.Main.processAllFiles(Main.java:604)
at com.android.jobb.Main.processAllFiles(Main.java:600)
at com.android.jobb.Main.main(Main.java:417)
Exception in thread "main" java.lang.RuntimeException: Error getting/writing file with           name: main.1.com.example.helloworld.obb
at com.android.jobb.Main$1.processFile(Main.java:501)
at com.android.jobb.Main.processAllFiles(Main.java:604)
at com.android.jobb.Main.processAllFiles(Main.java:600)
at com.android.jobb.Main.main(Main.java:417)
4

7 に答える 7

4

多くのファイルがある場合、jobb-Tool で次のエラーが発生することもあります (少なくとも、jobb.bat を使用するウィンドウでは)。

de.waldheinz.fs.fat.Directory Full Exception: directory is full

これは、obb ファイル形式がFAT16 で保存されているため、ルート ディレクトリに 512 個のエントリ/ファイルしか許可されていないためです。

Windows の場合: 画像が失われた "data" フォルダがあり、android sdk-tools ディレクトリにコピーされている場合

  • データ/1.jpg
  • データ/2.jpg
  • データ/3.jpg
  • データ/...
  • データ/5000.jpg

そしてあなたが使う

console>>>jobb -pn my.package.name -pv VERSIONCODE -d ./data -k obb_password
-o main.VERSIONCODE.my.package.name.obb

上記のエラーが発生します。ディレクトリ階層を 1 つ追加して、「データ」ディレクトリをサブフォルダに作成してみてください

  • root/data/1.jpg
  • ルート/データ/2.jpg
  • root/data/3.jpg
  • ルート/データ/...
  • root/data/5000.jpg

使用する

console>>>jobb -pn my.package.name -pv VERSIONCODE -d ./root -k obb_password 
-o main.VERSIONCODE.my.package.name.obb

後でobbから読みたい場合は、写真がサブフォルダーにあることに注意してください。

于 2013-04-17T22:04:01.640 に答える
2

ルート ディレクトリ内のファイル数を制限する FAT16 について Ix222 が述べたことに加えて、jobb ツール自体と、それが使用する FAT ライブラリにも問題があります。

FAT ライブラリでは、FAT12 の最大ファイルシステム サイズを 4 MB、FAT16 を 512 MB、それを超えるものには FAT32 を使用することを決定しています。実際には、FAT12 では最大 16 MB (一部の実装では 32 MB)、FAT16 では最大 2 GB まで使用できます。これが、現在のツールを使用する OBB サイズが 4 MB <= OBB サイズ < 512 MB の範囲に制限されている場合の理由です。

また、jobb ツールはファイルシステムを決定するために FAT ライブラリに誤って依存していますが、互換性があるのは FAT16のみです。

簡単な修正は、独自のバージョンの jobb ツールをビルドすることです (既存の JAR をバックアップして独自のものに置き換えることをお勧めします。Windows バッチ ファイルを引き続き使用して実行する必要があります)。ファイルシステムを決定する方法を単純に変更して、最大 2 GB の場合は FAT16 を返し、それ以外の場合は FAT32 を返すだけで、最大 2 GB の有効な OBB ファイルを構築できます (いずれにせよ、これは OBB ファイルの制限です)。

SuperFloppyFormatter は 512 MB を超えるものに対して FAT32 を返しますか?

https://code.google.com/p/android/issues/detail?id=60294

于 2013-09-21T07:53:15.543 に答える
0

私の場合、いくつかの隠しファイルを削除して問題を解決しました...

上司は MacOSX を所有しており、私は Windows を使用しています。そのため、彼がそれを渡し、フォルダーを開いた後、.DS_Store や ._.DS_Store などのいくつかの隠しファイルを見つけました。さらに、非表示の一時 JPG を見つけました。たとえば、image1.jpg というファイルがあった場合、別の .image1.jpg がありました。そのため、最終的にすべての隠しファイルを削除しました。

そしてほら!

于 2015-06-11T12:52:26.837 に答える
0

私の場合、パックしたいディレクトリで同じパラメーターと同じコンテンツを使用して、プログラムを再度実行することで解決しました。

./jobb -d /media/assets/ -o my-app-assets.obb -k my_pass -pn package-name -pv your-version
于 2013-03-05T15:25:13.337 に答える