2013-08-07 37 views
7

Android projemde ICU4J kullanmaya başladım. Ama projeyi bir cihazda çalıştırdığımda, açılışta bir kaza geçiriyorum. İşte hatadır:Android ve 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 

O yoğun bakım kaynaklar, bazı daha fazla dosya gerektirdiğini görünüyor, ama ben kavanoza bulunan tüm kaynaklar eklendi ... birisi aynı sorunu vardı ya da sadece bir çözüm varsa .. Teşekkürler!

Düzenleme

: Sadece bu uyarılar vardı:

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

Buna bir cevap buldunuz mu? Aynı sorunu yaşıyorum –

cevap

4

Tamam ben bu konuya cevap anladım. Görünüşe göre, sadece ICU için tam olarak oluşturulmuş .jar dosyasını indiremezsiniz ve sadece içeri indiremezsiniz. Veri dosyalarını içermez.

Sen için SAHİP :

  1. diyor .tgz dosyasını indirin bu dizinin
  2. Çalıştır "karınca içine
  3. Sıkıştırılmış bu dosya ve cd "Tüm kaynak paketinin dahil gzip'lenmiş tar arşivi" "ICU4J kendiniz oluşturmak için
  4. İhtiyacınız olan veri dosyalarını içeren bir icu4j.jar dosyası oluşturacaktır. Eğer libs dizine o damla ve aslında veri dosyalarını içeren bir .jar dosyası sağlanan eğer

bu kendi sitesinde bir yere açıklandı sorunun giderilmesine yardımcı veya olurdu içerecek şekilde gradle build.gradle dosyasını değiştirebiliyor . Bu, bir gün sürecek baş ağrısının bu şekilde çözülmesine yol açtığını umarım, bu da başkalarına yardımcı olur.

+1

Evet teşekkürler! Ben de öyle yaptım. Ama bu benim için kötü bir çözümdü çünkü kavanoz çok ağırdı ... 7Mb'den 16Mb'ye (Approx) kadar –

+0

Hayır, teşekkürler, benim uygulama boyutum 3MB'den az ... – Pedram