形態素解析をAndroidアプリに組み込みたいと考えています。 そこで以下の参考サイト(1)を参考にkuromojiを導入してました。 その結果、以下のエラーが出ます。 OutOfMemoryErrorの回避方法を教えて頂ければ幸いです。 また、他の方法でAndroidで形態素解析を行う方法があれば教えて頂ければ幸いです。 ・導入方法、 1.Eclipseで参考サイトのjavaソースをそのまま流用 2.jarファイルは、libフォルダに入れてビルドパスに追加 ○参考サイト(1) https://github.com/mwsoft/sample/blob/master/kuromoji-sample/src/main/java/jp/mwsoft/sample/kuromoji/SimpleTokenizerSample.java ○ログキャットのエラー(文字数の関係で時間部を一部削除) 17:39: D/dalvikvm(7812): GC_EXTERNAL_ALLOC freed 862 objects / 66872 bytes in 56ms 17:39: D/KeitaisoKaisekiActivity(7812): KeitaisoKaisekiActivity 17:39: D/KeitaisoKaisekiActivity(7812): onCreate 17:39: I/KeitaisoKaisekiActivity(7812): KeitaisoAnalyze Start 17:39: I/dalvikvm(7812): Could not find method java.lang.String.isEmpty, referenced from method org.atilika.kuromoji.Tokenizer$Builder.userDictionary 17:39: W/dalvikvm(7812): VFY: unable to resolve virtual method 1498: Ljava/lang/String;.isEmpty ()Z 17:39: D/dalvikvm(7812): VFY: replacing opcode 0x6e at 0x0003 17:39: D/dalvikvm(7812): VFY: dead code 0x0006-0015 in Lorg/atilika/kuromoji/Tokenizer$Builder;.userDictionary (Ljava/lang/String;)Lorg/atilika/kuromoji/Tokenizer$Builder; 17:39: E/dalvikvm-heap(7812): 29380966-byte external allocation too large for this process. 17:39: W/OSMemory(7812): External allocation of 29380966 bytes was rejected 17:39: W/dalvikvm(7812): Exception Ljava/lang/OutOfMemoryError; thrown during Lorg/atilika/kuromoji/dict/Dictionaries;. 17:39: W/System.err(7812): java.lang.OutOfMemoryError 17:39: W/System.err(7812): at org.apache.harmony.luni.platform.OSMemory.malloc(Native Method) 17:39: W/System.err(7812): at org.apache.harmony.luni.platform.PlatformAddressFactory.alloc(PlatformAddressFactory.java:150) 17:39: W/System.err(7812): at java.nio.DirectByteBuffer.(DirectByteBuffer.java:66) 17:39: W/System.err(7812): at java.nio.ReadWriteDirectByteBuffer.(ReadWriteDirectByteBuffer.java:51) 17:39: W/System.err(7812): at java.nio.BufferFactory.newDirectByteBuffer(BufferFactory.java:93) 17:39: W/System.err(7812): at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:68) 17:39: W/System.err(7812): at org.atilika.kuromoji.dict.TokenInfoDictionary.loadDictionary(TokenInfoDictionary.java:243) 17:39: W/System.err(7812): at org.atilika.kuromoji.dict.TokenInfoDictionary.getInstance(TokenInfoDictionary.java:228) 17:39: W/System.err(7812): at org.atilika.kuromoji.dict.Dictionaries.load(Dictionaries.java:44) 17:39: W/System.err(7812): at org.atilika.kuromoji.dict.Dictionaries.(Dictionaries.java:34) 17:39: W/System.err(7812): at org.atilika.kuromoji.Tokenizer.(Tokenizer.java:64) 17:39: W/System.err(7812): at org.atilika.kuromoji.Tokenizer$Builder.build(Tokenizer.java:237) 17:39: W/System.err(7812): at jp.android.KeitaisoAnalyze.KeitaisoKaisekiActivity.KeitaisoAnalyze(KeitaisoKaisekiActivity.java:291) 17:39: W/System.err(7812): at jp.android.KeitaisoAnalyze.KeitaisoKaisekiActivity.access$14(KeitaisoKaisekiActivity.java:287) 17:39: W/System.err(7812): at jp.android.KeitaisoAnalyze.KeitaisoKaisekiActivity$5.onClick(KeitaisoKaisekiActivity.java:268) 17:39: W/System.err(7812): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158) 17:39: W/System.err(7812): at android.os.Handler.dispatchMessage(Handler.java:99) 17:39: W/System.err(7812): at android.os.Looper.loop(Looper.java:123) 17:39: W/System.err(7812): at android.app.ActivityThread.main(ActivityThread.java:4627) 17:39: W/System.err(7812): at java.lang.reflect.Method.invokeNative(Native Method) 17:39: W/System.err(7812): at java.lang.reflect.Method.invoke(Method.java:521) 17:39: W/System.err(7812): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 17:39: W/System.err(7812): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 17:39: W/System.err(7812): at dalvik.system.NativeStart.main(Native Method)
↧