Próbuję przenieść aplikację z Eclipse do IntelliJ. Aplikacja jest w porządku, ale nie działa poprawnie."Nie znaleziono zasobu" podczas tworzenia aplikacji na system Android w wersji IntelliJ 9.0 Maia Public Beta
Oto częściowy ślad stosu Otrzymuję:
ERROR/AndroidRuntime(957):
java.io.IOException: Resource not found: "org/joda/time/tz/data/ZoneInfoMap" ClassLoader: [email protected]
at org.joda.time.tz.ZoneInfoProvider.openResource(ZoneInfoProvider.java:209)
at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:123)
at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:82)
at org.joda.time.DateTimeZone.getDefaultProvider(DateTimeZone.java:439)
at org.joda.time.DateTimeZone.setProvider0(DateTimeZone.java:393)
at org.joda.time.DateTimeZone.<clinit>(DateTimeZone.java:114)
at org.joda.time.chrono.GregorianChronology.<clinit>(GregorianChronology.java:71)
at org.joda.time.chrono.ISOChronology.<clinit>(ISOChronology.java:66)
at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:97)
at org.joda.time.DateTime.<init>(DateTime.java:120)
Z jakiegoś powodu, aplikacja nie jest w stanie znaleźć środki Joda czasie, chociaż są one określone w kompilacji ścieżki modułu. Są to te same pliki jar używane przez wersję aplikacji Eclipse.
alt text http://img.skitch.com/20091106-pgqujbb5eaeqc2wfiqc2c1p39a.png
APK zbudowany przez narzędzie IntelliJ jest o 20% mniejszy niż ten zbudowany przez Eclipse, ale nie wiem dlaczego.
Każdy pomysł, jaki może być problem?
UPDATE:
Rozmawiałem z Romain i XAV wczoraj, i wydaje się, że problemem jest to, że IntelliJ nie jest łączenie zasobów w apk. Najwyraźniej program Aapt stosuje podejście dwuprzebiegowe - najpierw łączy wszystkie pliki klas w plik .dex, a następnie łączy wszystkie pliki zasobów oddzielnie na najwyższym poziomie pliku APK. To drugie podanie, którego intelli wydaje się brakować.
W celu obejścia problemu zasugerowano, że należy oddzielić wszystkie pliki zasobów od słoika czasu Joda i umieścić je w katalogu src. Oczekiwano, że intelli będzie następnie pakował je do mojego apk'a, jakby były częścią mojego własnego źródła, rozwiązując tym samym problem. Jednak kiedy to zrobiłem, IntelliJ całkowicie zignorował te pliki podczas tworzenia apk.
Nie wiem dlaczego. Czy istnieje sposób obejścia problemu, dzięki któremu mogę pobrać pliki zasobów Joda-time do mojego apk, co nie jest zbyt niewygodne za każdym razem, gdy chcę je budować?
, dlaczego używasz Inteli J. Mam na myśli to, że Google radzi używać Eclipse do programowania Androida, czy jest jakaś specjalna potrzeba, która dotyczy tylko Inetli J? –
tylko moja ciekawość nic więcej. –
Muszę powiedzieć, że nie miałem żadnych problemów z IntelliJem, kocham to bardziej niż Eclipse. Mam nadzieję, że to zrozumiesz Nie miałem problemu z dodaniem zewnętrznych słoików do moich projektów. Moja jedyna sugestia to zmiana ustawień pod przyciskiem Dodaj. – sgarman