【发布时间】:2009-11-06 21:45:47
【问题描述】:
我正在尝试将应用程序从 Eclipse 移植到 IntelliJ。该应用程序构建良好,但无法正常运行。
这是我收到的部分堆栈跟踪:
ERROR/AndroidRuntime(957):
java.io.IOException: Resource not found: "org/joda/time/tz/data/ZoneInfoMap" ClassLoader: dalvik.system.PathClassLoader@43761190
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)
由于某种原因,应用无法找到 joda-time 资源,即使它们是在模块的构建路径中指定的。这些是应用程序的 eclipse 版本使用的相同 jarfile。
alt text http://img.skitch.com/20091106-pgqujbb5eaeqc2wfiqc2c1p39a.png
IntelliJ 工具构建的 APK 比 Eclipse 构建的 APK 小 20% 左右,但我不知道为什么。
知道可能是什么问题吗?
更新:
我昨天与 romain 和 xav 进行了交谈,看来问题在于 intellij 没有将资源捆绑到 apk 中。显然,aapt 采用了两遍方法——首先它将所有类文件捆绑到一个 .dex 文件中,然后将所有资源文件分别捆绑到 apk 文件的顶层。 intellij 似乎缺少的是第二遍。
作为一种解决方法,他们建议我从 joda-time jar 中解压缩所有资源文件,并将它们放在我的 src 目录中。期望是 intellij 然后将它们捆绑到我的 apk 中,就好像它们是我自己源的一部分一样,从而解决了问题。但是,当我这样做时,IntelliJ 在创建 apk 时完全忽略了这些文件。
我不知道为什么。是否有一种解决方法可以让我将 joda-time 资源文件放入我的 apk 中,这样每次我想要构建时都不会非常不方便?
【问题讨论】:
-
您为什么使用 Inteli J。我的意思是 Google 建议使用 Eclipse 进行 Android 开发,那么只有 Inetli J 可以解决任何特殊需求吗?
-
只是我的好奇心而已。
-
得说,IntelliJ 还没有遇到任何问题,比 Eclipse 更喜欢它。希望你能弄清楚我在我的项目中添加外部 jar 时没有遇到任何问题。我唯一的建议是调整“添加”按钮下的设置。
-
IDEA 比 eclipse 好用。
标签: android intellij-idea jodatime