JOBB DirectoryFullException: de.waldheinz.fs.fat.DirectoryFullException: directory is full

I am trying to use the JOBB tool in a directory containing 192 jpg files, only about 70 mb. When I run the command as jobb -d C:/sdk/tools/dir/data -k 123456 -o com.nick.app.obb -pn com.nick.app -pv 1 , it gives the following log:

 Slop: 0 Directory Overhead: 0 Slop: 189853 Directory Overhead: 24704 Partial Sector [32] writing to sector: 277 Partial Sector [32] writing to sector: 277 Partial Sector [32] writing to sector: 277 Partial Sector [299] writing to sector: 897 Partial Sector [416] writing to sector: 1733 Partial Sector [148] writing to sector: 2385 Partial Sector [95] writing to sector: 3013 Partial Sector [498] writing to sector: 3573 Partial Sector [146] writing to sector: 4061 Partial Sector [427] writing to sector: 4581 Partial Sector [204] writing to sector: 5213 Partial Sector [115] writing to sector: 5769 Partial Sector [69] writing to sector: 6481 Partial Sector [79] writing to sector: 7077 Partial Sector [346] writing to sector: 7661 Partial Sector [93] writing to sector: 8213 Partial Sector [120] writing to sector: 8857 Partial Sector [423] writing to sector: 9461 Partial Sector [4] writing to sector: 10149 Partial Sector [184] writing to sector: 11065 Partial Sector [479] writing to sector: 11921 Partial Sector [83] writing to sector: 12569 Partial Sector [358] writing to sector: 13241 Partial Sector [378] writing to sector: 14009 Partial Sector [366] writing to sector: 14669 Partial Sector [393] writing to sector: 15677 Partial Sector [323] writing to sector: 16385 Partial Sector [236] writing to sector: 16989 Partial Sector [233] writing to sector: 17645 Partial Sector [503] writing to sector: 18345 Partial Sector [348] writing to sector: 19017 Partial Sector [473] writing to sector: 19721 Partial Sector [192] writing to sector: 20345 Partial Sector [398] writing to sector: 20805 Partial Sector [67] writing to sector: 21617 Partial Sector [3] writing to sector: 22437 Partial Sector [315] writing to sector: 23489 Partial Sector [161] writing to sector: 24045 Partial Sector [421] writing to sector: 24569 Partial Sector [465] writing to sector: 25557 Partial Sector [164] writing to sector: 26485 Partial Sector [458] writing to sector: 27177 Partial Sector [412] writing to sector: 28153 Partial Sector [1] writing to sector: 28633 Partial Sector [119] writing to sector: 29441 Partial Sector [367] writing to sector: 30413 Partial Sector [274] writing to sector: 31397 Partial Sector [325] writing to sector: 32369 Partial Sector [355] writing to sector: 33361 Partial Sector [187] writing to sector: 34025 Partial Sector [136] writing to sector: 34829 Partial Sector [157] writing to sector: 35873 Partial Sector [175] writing to sector: 36733 Partial Sector [106] writing to sector: 37673 Partial Sector [79] writing to sector: 38593 Partial Sector [379] writing to sector: 39545 Partial Sector [296] writing to sector: 40517 Partial Sector [440] writing to sector: 41205 Partial Sector [277] writing to sector: 41985 Partial Sector [153] writing to sector: 42609 Partial Sector [484] writing to sector: 43385 Partial Sector [363] writing to sector: 44329 Partial Sector [510] writing to sector: 45097 Partial Sector [296] writing to sector: 46101 Partial Sector [314] writing to sector: 47081 Partial Sector [244] writing to sector: 48073 Partial Sector [187] writing to sector: 48825 Partial Sector [253] writing to sector: 49825 Partial Sector [374] writing to sector: 50833 Partial Sector [508] writing to sector: 51777 Partial Sector [26] writing to sector: 52517 Partial Sector [192] writing to sector: 53385 Partial Sector [137] writing to sector: 54209 Partial Sector [312] writing to sector: 55029 Partial Sector [145] writing to sector: 55829 Partial Sector [394] writing to sector: 56517 Partial Sector [150] writing to sector: 57317 Partial Sector [81] writing to sector: 58197 Partial Sector [198] writing to sector: 59101 Partial Sector [358] writing to sector: 59929 Partial Sector [397] writing to sector: 60729 Partial Sector [142] writing to sector: 61209 Partial Sector [148] writing to sector: 62193 Partial Sector [365] writing to sector: 62833 Partial Sector [93] writing to sector: 63293 Partial Sector [450] writing to sector: 63701 Partial Sector [10] writing to sector: 64485 Partial Sector [354] writing to sector: 64969 Partial Sector [174] writing to sector: 65441 Partial Sector [435] writing to sector: 65961 Partial Sector [64] writing to sector: 66553 Partial Sector [41] writing to sector: 67053 Partial Sector [463] writing to sector: 67489 Partial Sector [177] writing to sector: 68041 Partial Sector [403] writing to sector: 68509 Partial Sector [479] writing to sector: 69305 Partial Sector [248] writing to sector: 69761 Partial Sector [331] writing to sector: 70245 Partial Sector [361] writing to sector: 70745 Partial Sector [56] writing to sector: 71281 Partial Sector [301] writing to sector: 71805 Partial Sector [253] writing to sector: 72629 Partial Sector [461] writing to sector: 73041 Partial Sector [304] writing to sector: 73561 Partial Sector [218] writing to sector: 74105 Partial Sector [147] writing to sector: 74765 Partial Sector [303] writing to sector: 75365 Partial Sector [410] writing to sector: 76321 Partial Sector [280] writing to sector: 77137 Partial Sector [484] writing to sector: 77697 Partial Sector [344] writing to sector: 78465 Partial Sector [189] writing to sector: 79001 Partial Sector [126] writing to sector: 79413 Partial Sector [262] writing to sector: 79929 Partial Sector [187] writing to sector: 80317 Partial Sector [465] writing to sector: 80869 Partial Sector [350] writing to sector: 81313 Partial Sector [236] writing to sector: 81793 Partial Sector [98] writing to sector: 82333 Partial Sector [223] writing to sector: 83209 Partial Sector [1] writing to sector: 83593 Partial Sector [51] writing to sector: 84577 Partial Sector [340] writing to sector: 84993 Partial Sector [377] writing to sector: 85961 Partial Sector [232] writing to sector: 86829 Partial Sector [229] writing to sector: 87253 Partial Sector [337] writing to sector: 88225 Partial Sector [205] writing to sector: 89285 Partial Sector [353] writing to sector: 90089 Partial Sector [289] writing to sector: 90921 Partial Sector [369] writing to sector: 91969 Partial Sector [283] writing to sector: 92741 Partial Sector [267] writing to sector: 93553 Partial Sector [313] writing to sector: 94049 Partial Sector [363] writing to sector: 94521 Partial Sector [415] writing to sector: 95245 Partial Sector [181] writing to sector: 96269 Partial Sector [420] writing to sector: 96733 Partial Sector [251] writing to sector: 97733 Partial Sector [244] writing to sector: 98221 Partial Sector [406] writing to sector: 98669 Partial Sector [226] writing to sector: 99069 Partial Sector [363] writing to sector: 100045 Partial Sector [133] writing to sector: 100769 Partial Sector [461] writing to sector: 101209 Partial Sector [329] writing to sector: 102337 Partial Sector [495] writing to sector: 103201 Partial Sector [452] writing to sector: 104045 Partial Sector [97] writing to sector: 105153 Partial Sector [236] writing to sector: 106177 Partial Sector [10] writing to sector: 106645 Partial Sector [292] writing to sector: 107725 Partial Sector [36] writing to sector: 108725 Partial Sector [500] writing to sector: 109793 Partial Sector [441] writing to sector: 110681 Partial Sector [128] writing to sector: 111329 Partial Sector [293] writing to sector: 112277 Partial Sector [382] writing to sector: 112737 Partial Sector [493] writing to sector: 113229 Partial Sector [256] writing to sector: 113653 Partial Sector [20] writing to sector: 114893 Partial Sector [351] writing to sector: 115905 Partial Sector [110] writing to sector: 116913 Partial Sector [322] writing to sector: 118041 Partial Sector [156] writing to sector: 118589 Partial Sector [232] writing to sector: 119013 Partial Sector [331] writing to sector: 119533 Partial Sector [297] writing to sector: 120509 Partial Sector [310] writing to sector: 121549 Partial Sector [392] writing to sector: 122545 Partial Sector [285] writing to sector: 123485 Partial Sector [108] writing to sector: 124065 de.waldheinz.fs.fat.DirectoryFullException: directory is full at de.waldheinz.fs.fat.Fat16RootDirectory.changeSize(Fat16RootDirectory.java:109) at de.waldheinz.fs.fat.AbstractDirectory.addEntries(AbstractDirectory.java:282) at de.waldheinz.fs.fat.FatLfnDirectory.addFile(FatLfnDirectory.java:139) at com.android.jobb.Main$1.processFile(Main.java:475) 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 adding file with name: img178.jpg at com.android.jobb.Main$1.processFile(Main.java:478) 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) 

Any suggestions for this?

+1
source share
1 answer

Root cause analysis:

 de.waldheinz.fs.fat.DirectoryFullException: directory is full 

This error occurred when either Fat16RootDirectory becomes full , or ClusterChainDirectory grows beyond it ClusterChainDirectory maximum size(512 MB)

An exception occurs where ?: DirectoryFullException.java

 DirectoryFullException(int currentCapacity, int requestedCapacity) { this("directory is full", currentCapacity, requestedCapacity); } 

For this problem, I want to prefer a solution and some suggestions. Hope this helps you.

Solution 1:

On Windows: if you have a data folder with image loss and copied to the android sdk-tools directory

 data/1.jpg data/2.jpg data/3.jpg data/... data/5000.jpg 

and you use

 console>>>jobb -d C:/sdk/tools/dir/data -k 123456 -o com.nick.app.obb -pn com.nick.app -pv 1 

You will get the indicated error. Try adding one directory hierarchy and making the "data" directory into a subfolder

 root/data/1.jpg root/data/2.jpg root/data/3.jpg root/data/... root/data/5000.jpg 

using

 console>>>jobb -d C:/sdk/tools/dir/root/data -k 123456 -o com.nick.app.obb -pn com.nick.app -pv 1 

you should keep in mind that if you want to read from obb later, that images are now in a subfolder.

Link to the resource:


Offer 1:

To check the size of sector/cluster/FAT , run "jobb -v -dump [obb]" . This will print a ton of information, including "Sectors per cluster" and "Sectors per FAT" . "Sectors per FAT"

In my old .obb, these values ​​were 8 and 150, respectively. 8 is not a factor of 150, so I may have hit the kernel error described above.

You need to make sure that you use the updated jobb.jar and fat32lib.jar to fix this problem. With current library versions on Google Drive, now I get 8 sectors per cluster, 184 sectors per FAT.

I have not yet tested whether this fixes data corruption issues that I saw earlier. I will do more tests and report here.

Offer 2:

Hacking can solve the problem . But it took more memory:

This problem really starts to be very boring. Today I somehow figured out a workaround, this is ridiculous, but it seems that adding extra data to .obb seems to fix the problem (at least for me). To be precise, my original .obb file size was 110 MB, now it is 220 MB, and the application reads the data without corruption. This is by far the dirtiest hack I have ever done with the application, and I'm not proud of it, but hey, at least now it works.: P

Offer 3:

In October 19, 2015, an updated version was released: android-sdk-fat32lib

This version is forked to solve the problem with the JOBB tool distributed with the Android SDK, with (Android SDK 23) unable to create OBB files larger than 512M.

UPDATE:

You will receive the source version and modified versions of the source code in the following part:

To create a jar file from the source code, you can follow the tutorials:

+2
source

All Articles