我看到针对我发布的Android应用程序的Crittercism(崩溃报告服务)出现了一些错误.跟踪如下:
0 java.io.IOException: Resource not found: "org/joda/time/tz/data/ZoneInfoMap" ClassLoader: dalvik.system.PathClassLoader@45908320
1 at org.joda.time.tz.ZoneInfoProvider.openResource(ZoneInfoProvider.java:211)
2 at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:123)
3 at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:82)
4 at org.joda.time.DateTimeZone.getDefaultProvider(DateTimeZone.java:462)
5 at org.joda.time.DateTimeZone.setProvider0(DateTimeZone.java:416)
6 at org.joda.time.DateTimeZone.<clinit>(DateTimeZone.java:115)
7 at org.joda.time.chrono.GregorianChronology.<clinit>(GregorianChronology.java:71)
8 at org.joda.time.chrono.ISOChronology.<clinit>(ISOChronology.java:66)
9 at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:61)
10 at org.joda.time.DateTime.<init>(DateTime.java:155)
Run Code Online (Sandbox Code Playgroud)
搜索显示这通常是一个编译问题(通常是Joda时间库没有添加到构建路径或其他东西),但那么为什么只有大约4个用户看到这个错误?
我唯一的猜测是有人试图反编译应用程序盗版它(它是一个相当受欢迎的付费应用程序),并在错误地重新编译时看到这个错误.在那种情况下,我很高兴他们看到错误,我不需要担心这一点.
另一个奇怪的事情是导致问题的代码被try/catch包围,它似乎没有抓住它:
try {
DateTime dt = new DateTime();
DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
return fmt.print(dt);
} catch (Exception e) {
//Report issue to Analytics service
}
Run Code Online (Sandbox Code Playgroud)
对我而言,这个错误似乎更不可能出现在Crittercism上,因为它应该被抓住了.有谁能解释一下?
我正在努力弄清楚如何在没有用户干预的情况下以编程方式检索相机胶卷中的最新照片.要清楚,我不想使用图像选择器,我希望应用程序在应用程序打开时自动抓取最新的照片.
我知道这是可能的,因为我看过类似的应用程序这样做,但我似乎无法找到任何信息.
我以编程方式设置带边框的imageview.我将imageView的内容模式设置为Aspect Fit,它可以工作,但边框仍然是原始方块.
码:
CGRect imageViewRect = CGRectMake(left, top, 158, 119);
UIImageView *imageView = [[UIImageView alloc] initWithFrame:imageViewRect];
[imageView setContentMode:UIViewContentModeScaleAspectFit];
[imageView setImage:image];
[imageView.layer setBorderColor:[[UIColor blackColor] CGColor]];
[imageView.layer setBorderWidth:3.0];
Run Code Online (Sandbox Code Playgroud)
显然,我希望黑色边框可以根据纵横比调整,并在所有面上环绕图像.相反它保留在原始框架中,看起来像这样:

我需要确定我的应用程序文档目录中的文件是否是zip文件.文件名不能用于进行此确定.所以我需要能够读取MIME类型或找到一些仅适用于拉链的其他属性.
注意:需要将整个文件放入内存的解决方案并不理想,因为文件可能非常大.
我的Android应用程序使用API发送多部分HTTP请求.我成功地得到了这样的响应:
post.setEntity(multipartEntity.build());
HttpResponse response = client.execute(post);
Run Code Online (Sandbox Code Playgroud)
响应是电子书文件(通常是epub或mobi)的内容.我想将其写入具有指定路径的文件,让我们说"/sdcard/test.epub".
文件可能高达20MB,所以它需要使用某种流,但我可以无法绕过它.谢谢!
我startActivityForResult()用来允许用户从我的应用程序中选择文件系统中的文件.选择文件后,OnActivityResult()运行并将文件路径保存到变量并继续.这在Android 2.3及更低版本上运行良好.
然而,在Honeycomb上,OnCreate()再次运行OnActivityReult(),基本上重新开始我的活动,所以我无法保存任何变量,因为它在我得到结果后运行一个全新的活动.
知道为什么会这样,我能做些什么呢?