2013-08-07 4 views
7

私はAndroidプロジェクトでICU4Jを使い始めました。しかし、私がデバイスでプロジェクトを実行すると、起動時にクラッシュします。ここ は誤りです:AndroidとICU 5.0

FATAL EXCEPTION: main 
java.lang.ExceptionInInitializerError 
    at com.ibm.icu.text.SimpleDateFormat.<clinit>(SimpleDateFormat.java:849) 
    at com.ibm.icu.text.DateFormat.get(DateFormat.java:1492) 
    at com.ibm.icu.text.DateFormat.getDateInstance(DateFormat.java:1191) 
    at com.phonedev.myApp.calendar.TimeCursor.getLongDate(TimeCursor.java:333) 
    at com.phonedev.myApp.about.VersionInfo.getBuildDateTime(VersionInfo.java:44) 
    at com.phonedev.myApp.myAppActivity.onCreate(myAppActivity.java:184) 
    at android.app.Activity.performCreate(Activity.java:5133) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
    at android.app.ActivityThread.access$600(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:5103) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.util.MissingResourceException: Could not find the bundle com/ibm/icu/impl/data/icudt50b/en_US 
    at com.ibm.icu.impl.ResourceBundleWrapper.getBundleInstance(ResourceBundleWrapper.java:109) 
    at com.ibm.icu.util.UResourceBundle.instantiateBundle(UResourceBundle.java:573) 
    at com.ibm.icu.util.UResourceBundle.getBundleInstance(UResourceBundle.java:145) 
    at com.ibm.icu.util.UResourceBundle.getBundleInstance(UResourceBundle.java:228) 
    at com.ibm.icu.impl.CalendarData.<init>(CalendarData.java:28) 
    at com.ibm.icu.util.Calendar.setWeekData(Calendar.java:4604) 
    at com.ibm.icu.util.Calendar.<init>(Calendar.java:1584) 
    at com.ibm.icu.util.GregorianCalendar.<init>(GregorianCalendar.java:391) 
    at com.ibm.icu.util.GregorianCalendar.<init>(GregorianCalendar.java:337) 
    at com.ibm.icu.text.DateFormat$Field.<clinit>(DateFormat.java:1787) 
    ... 20 more 

誰かが同じ問題を抱えていたか、単にソリューションを持っている場合は、ICUのソースは、いくつかのより多くのファイルを必要としているようですが、私は、私は瓶で見つかったすべてのソースを追加... .. 。 ありがとう!

編集: はただ、これらの警告を持っていた:

dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_root' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_en' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_en_US' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_zoneinfo64' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_en' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_en_US' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_supplementalData' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_en' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_en_US' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_res' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_en' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_en_US' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_res_index' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/[email protected]=gregorian' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_en' 
dvmFindClassByName rejecting 'com/ibm/icu/impl/data/icudt50b_en_US' 
threadid=11: thread exiting with uncaught exception (group=0x4176a700) 
+0

この回答をお探しですか?私は同じ問題を抱えている –

答えて

4

[OK]を、私はこの問題への答えを考え出しました。明らかに、ICU用に完全にビルドされた.jarファイルをダウンロードするだけでは、それをドロップすることはできません。データファイルは含まれていません。

あなたはする必要が:そのディレクトリにファイルやCD

  • ファイル名を指定して実行「アリという

    1. 「全体のソースパッケージを含むgzipされたtarアーカイブを」と言うの.tgzファイルをダウンロードし解凍し"ICU4Jを自分で構築する
    2. 必要なデータファイルを含むicu4j.jarファイルを作成します。あなたのlibsディレクトリにそれをドロップすると、彼らは実際にデータファイルを含む.jarファイルを提供する場合、それは

    が、これは自分のサイトのどこかに説明された場合に役立ったりしているだろう含めるためにあなたのGradle build.gradleファイルを修正することができます。これは約1日の頭痛が分かりましたので、うまくいけば、これは他の人に役立ちます。

  • +1

    ありがとう!それが私のしたことです。しかし、これは私のために悪い解決策だったので、瓶が大きすぎる...過去7Mbから16Mb(約)へ –

    +0

    いいえ、ありがとう、私のアプリの全体のサイズは3MB未満です... – Pedram