2014-06-10 126 views
1

我已将'joda-time'库(2.3版)添加到我的Android应用程序中。我用它来获得DateTimeFormatter类,如下所示:如何将'joda-time'库添加到Android应用程序中?

DateTimeFormatter myDateTimeFormatter = ISODateTimeFormat.dateTimeNoMillis(); 

此建设和发展过程中,从Eclipse中运行我的应用程序时工作正常。

但是,当我使用一些使用aapt的构建脚本构建我的发布应用程序时,上面的代码行将粘贴到下面的IOException。问题是找不到'joda-time'库中的ZoneInfoMap文本文件。 (这不是一个.class文件。)

的问题是:为什么会使用Eclipse构建我的APK时,但使用AAPT命令行工具构建我的APK时,不包括被列入?我怎样才能引用'joda-time'库,以便保留这个资源? Proguard已被禁用,因此它不是一个进程问题。

06-10 13:00:59.124:E/AndroidRuntime(28922):致命异常:主

06-10 13:00:59.124:E/AndroidRuntime(28922):java.io. IOException: 找不到资源:“org/joda/time/tz/data/ZoneInfoMap” -lib/com.example.app]

06-10 13:00:59.124:E/AndroidRuntime(28922):在 org.joda.time.tz.ZoneInfoProvider.openResource(ZoneInfoProvider.java:212)

06-10 13:00:59.124:E/AndroidRuntime(28922):在 org.joda.time.tz.ZoneInfoProvider(ZoneInfoProvider.java:123)

06-10 13:00:59.124 :E/AndroidRuntime(28922):在 org.joda.time.tz.ZoneInfoProvider(ZoneInfoProvider.java:82)

06-10 13:00:59.124:E/AndroidRuntime(28922):在 组织.joda.time.DateTimeZone.getDefaultProvider(DateTimeZone.java:490)

06-10 13:00:59.124:E/AndroidRuntime(28922):在 org.joda.time.DateTimeZone.setProvider0(DateTi meZone.java:444)06-10

13:00:59.124:E/AndroidRuntime(28922):在 org.joda.time.DateTimeZone(DateTimeZone.java:116)06-10

13:00:59.124:E/AndroidRuntime(28922):在 org.joda.time.format.DateTimeFormatter.withZoneUTC(DateTimeFormatter.java:301)

06-10 13:00:59.124:E/AndroidRuntime( 28922):at org.joda.time.format.ISODateTimeFormat $ Constants.localDateParser(ISODateTimeFormat.java:1226)

06-10 13:00:59.124:E/AndroidRu n时间(28922):在 org.joda.time.format.ISODateTimeFormat $常量(ISODateTimeFormat.java:1203)

06-10 13:00:59.124:E/AndroidRuntime(28922):在 组织。 joda.time.format.ISODateTimeFormat.dateTimeNoMillis(ISODateTimeFormat。Java的:733)

...

+0

您是否将它作为库添加到构建路径中(假设Eclipse没有将它自己添加为私有库),在这种情况下,您需要将Order和Export设置为true? – EpicPandaForce

回答

0

看起来这个问题是我正在使用的构建脚本特有的东西。在构建过程中,只有.class文件正在从我引用到应用程序包(apk)的.jar库中取出。为了解决这个问题,我不得不改变我们的构建脚本,以复制非.classs文件。从Eclipse构建时,这是默认情况下发生的。

0

我的猜测是,你的产品包装是建立与不同ProGuard的设置,这些设置剥离提到的类。尝试使用-keep option在apk中包含它。

+0

对不起,我应该提到,这不是一个proguard问题。在Elcipse和aapt的构建过程中,Proguard被禁用。 –

0

在eclipse中,右键单击jar并选择'Add to Build Path'。只是为了确保它的工作,右键单击项目 - >属性 - >构建路径 - >库。该jar现在应该显示在那里,其余的依赖关系。

相关问题