AnySoftKeyboard / AnySoftKeyboardTools

[DEPRECATED] AnySoftKeyboard various tools

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Binary dictionary 4 MB limit

ivan-ushakov opened this issue · comments

commented

Hello. Dictionary tool has 4 MB limit (I guess because of 22 bit address). Is it possible to use it for large dictionaries like Turkish language with XML file size of 20 MB?

Same question for 10 MB large file words.xml for the Dutch language with less than 400.000 words. The Dutch language uses a lot of compounds that need to be included explicitly in the dictionary.

When I run LanguagePack-Dutch$ java -jar ../AnySoftKeyboardTools/makedict/makedict.jar I get the following error:

Reading words from input /home/***/workspace/LanguagePack-Dutch/dict/words.xml
Will store output files under /home/***/workspace/LanguagePack-Dutch/res/raw
Deleting previous versions...
Nodes = 1292442
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 4194304
    at MakeBinaryDictionary.addNode(MakeBinaryDictionary.java:290)
    at MakeBinaryDictionary.writeWordsRec(MakeBinaryDictionary.java:343)
    at MakeBinaryDictionary.writeWordsRec(MakeBinaryDictionary.java:349)
    at MakeBinaryDictionary.writeWordsRec(MakeBinaryDictionary.java:349)
    at MakeBinaryDictionary.writeWordsRec(MakeBinaryDictionary.java:349)
    at MakeBinaryDictionary.writeWordsRec(MakeBinaryDictionary.java:349)
    at MakeBinaryDictionary.writeWordsRec(MakeBinaryDictionary.java:349)
    at MakeBinaryDictionary.writeWordsRec(MakeBinaryDictionary.java:349)
    at MakeBinaryDictionary.writeWordsRec(MakeBinaryDictionary.java:349)
    at MakeBinaryDictionary.writeWordsRec(MakeBinaryDictionary.java:349)
    at MakeBinaryDictionary.writeWordsRec(MakeBinaryDictionary.java:349)
    at MakeBinaryDictionary.writeWordsRec(MakeBinaryDictionary.java:349)
    at MakeBinaryDictionary.writeToDict(MakeBinaryDictionary.java:361)
    at MakeBinaryDictionary.<init>(MakeBinaryDictionary.java:161)
    at MakeBinaryDictionary.main(MakeBinaryDictionary.java:99)
    ... 5 more

Is this related to the 4 MB limit or another issue?

Is there any progress on this please?