应用程序在新活动开始时在FroYo上崩溃

时间:2011-07-11 01:25:42

标签: android android-activity android-3.0-honeycomb android-actionbar

我正在为设备编写一个Android应用程序2.1 Froyo> 3.1蜂窝。

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

我已经编写了Honeycomb的布局,我刚开始在Froyo(我的其他设备)上实现和测试,我不能在没有它们崩溃的情况下在Froyo或Gingerbread(模拟器)上启动任何其他活动,但它们可以工作完美地在Honeycomb。

以下是崩溃的LogCat:

  

07-11 11:17:51.832:   INFO / ActivityManager(75):显示   com.squirculardesign.android.pixel /。主要:   + 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):开始:   意图{   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 /机器人/像素/ Calculator_CaptureOriented; .getActionBar   ()Landroid /应用/动作条;

     

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

     

07-11 11:18:51.643:   DEBUG / dalvikvm(458):VFY:死代码   0x0006-000b in   LCOM / squirculardesign /机器人/像素/ Calculator_CaptureOriented; .onStart   ()V

     

07-11 11:18:51.773:   WARN / ResourceType(458):失败   获取0x7f030002的条目(t = 2 e = 2)   在包0中(错误-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):请求时间   失败:java.net.SocketException:   地址系列不受支持   协议

     

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

我认为(我不确定)它与ActionBar有关。 任何人都可以指出问题是什么以及如何解决它?

感谢您的帮助,祝您度过愉快的一天。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

很可能您使用的是Honeycomb专用的API,但他们不能使用Froyo。如果您同时针对Froyo和Honeycomb,我建议您从最低API(即Froyo)开始。

  

我这样做的方式是   通过Java的类   应该适用于所有平台和   具有不同的布局基于   屏幕尺寸,这是正确的方法   要去做吗?

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

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