0

我正在为设备 2.1 Froyo > 3.1 Honeycomb 编写一个 android 应用程序。

我一直这样做的方式是通过应该适用于所有平台并根据屏幕大小具有不同布局的 Java 类,这是正确的方法吗?

我已经为 Honeycomb 编写了布局,并且刚刚开始在 Froyo(我的其他设备)上实施和测试,我无法在 Froyo 或 Gingerbread(模拟器)上启动任何其他活动而不会崩溃,但它们在 Honeycomb 上运行良好.

这是崩溃的 LogCat:

07-11 11:17:51.832: INFO/ActivityManager(75): 显示 com.squirculardesign.android.pixel/.Main: +6s867ms (总共 +24s424ms)

07-11 11:17:57.063: DEBUG/dalvikvm(223): GC_EXPLICIT 释放 23K,50% 释放 2827K/5639K,外部 4681K/5342K,暂停 72ms

07-11 11:18:21.743: DEBUG/dalvikvm(75): GC_CONCURRENT 释放 1299K,59% 释放 4249K/10247K,外部 3520K/3903K,暂停 8ms+55ms

07-11 11:18:39.642: WARN/KeyCharacterMap(458): id 0 没有键盘

07-11 11:18:39.642:WARN/KeyCharacterMap(458):使用默认键盘映射:/system/usr/keychars/qwerty.kcm.bin

07-11 11:18:40.064: WARN/InputManagerService(75): 窗口已经聚焦,忽略焦点增益:com.android.internal.view.IInputMethodClient$Stub$Proxy@4067db20

07-11 11:18:51.223: INFO/ActivityManager(75): 开始: Intent { cmp=com.squirculardesign.android.pixel/.Calculator_CaptureOriented } 来自 pid 458

07-11 11:18:51.543: INFO/dalvikvm(75): Jit: 将 JitTable 的大小从 1024 调整为 2048

07-11 11:18:51.623: INFO/dalvikvm(458): 找不到方法 com.squirculardesign.android.pixel.Calculator_CaptureOriented.getActionBar,引用自方法 com.squirculardesign.android.pixel.Calculator_CaptureOriented.onStart

07-11 11:18:51.643: WARN/dalvikvm(458): VFY: 无法解析虚拟方法 77: Lcom/squirculardesign/android/pixel/Calculator_CaptureOriented;.getActionBar ()Landroid/app/ActionBar;

07-11 11:18:51.643:调试/dalvikvm(458):VFY:在 0x0003 处替换操作码 0x6e

07-11 11:18:51.643:调试/dalvikvm(458):VFY:Lcom/squirculardesign/android/pixel/Calculator_CaptureOriented 中的死代码 0x0006-000b;.onStart ()V

07-11 11:18:51.773: WARN/ResourceType(458): 在包 0 中获取 0x7f030002 (t=2 e=2) 的条目失败(错误 -75)

07-11 11:19:01.282:WARN/ActivityManager(75):HistoryRecord{40554050 com.squirculardesign.android.pixel/.Calculator_CaptureOriented} 的活动空闲超时

07-11 11:19:22.253:DEBUG/dalvikvm(153):GC_CONCURRENT 释放 503K,52% 释放 2973K/6151K,外部 1625K/2137K,暂停 7ms+5ms

07-11 11:20:23.573: DEBUG/SntpClient(75): request time failed: java.net.SocketException: Address family not supported by protocol

07-11 11:25:23.583:DEBUG/SntpClient(75):请求时间失败:java.net.SocketException:协议不支持地址族

我认为(我不确定)这与 ActionBar 有关。谁能指出问题是什么以及如何解决?

感谢您的帮助,祝您有美好的一天。

4

2 回答 2

4

Activity.getActionBar方法在 Honeycomb 之前不存在。但更一般地说,您需要复制您在操作栏中的功能,用于蜂窝设备之前的设备,因为它们不存在。

于 2011-07-11T01:52:04.723 回答
2

您很可能使用了特定于 Honeycomb 的 API,但它们不适用于 Froyo。如果您同时针对 Froyo 和 Honeycomb,我建议您从最低 API(即 Froyo)开始。

我一直这样做的方式是通过应该适用于所有平台并根据屏幕大小具有不同布局的 Java 类,这是正确的方法吗?

是的,这是正确的方法(准确地说是不同的分辨率)。只要确保您使用的 API 与您支持的所有级别的 Android 兼容即可。

最后,您的日志不会显示错误。查找其中包含ERROR的内容和/或堆栈跟踪。

于 2011-07-11T01:49:27.343 回答