- 匿名回答是我的答案,我解决了这个问题.--
我一直在为Android编写一个应用程序,一切都在Honeycomb中运行良好,但在我的FroYo和Gingerbread设备上没有很好用(与你期望的正确相反).
以下是我认为导致此问题的代码:
@Override
protected void onStart() {
int versionNumber = Integer.valueOf(android.os.Build.VERSION.SDK);
if (versionNumber == 11) {
super.onStart();
ActionBar actionBar = this.getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,我实现了ActionBar的icon-up-home功能,我添加了versionNumber变量,因为我认为在Honyecomb设备中缺少ActionBar导致活动运行时出现问题,但它仍然崩溃,我相信这一点是问题,虽然我调试很糟糕,并且不了解logcat给我的任何东西.
编辑:logcat - 我希望我得到正确的部分?!
08-20 17:21:41.326:WARN/ActivityManager(2707):尝试启动com.squirculardesign.android.pixel /.关于08-20 17:21:41.346:INFO/dalvikvm(4059):找不到方法com .squirculardesign.android.pixel.About.getActionBar,从方法com.squirculardesign.android.pixel.About.onStart引用08-20 17:21:41.346:WARN/dalvikvm(4059):VFY:无法解析虚方法54: Lcom/squirculardesign/android/pixel/About; .getActionBar()Landroid/app/ActionBar; 08-20 17:21:41.346:DEBUG/dalvikvm(4059):VFY:在0x0011更换操作码0x6e 08-20 17:21:41.346:DEBUG/dalvikvm(4059):VFY:Lcom/squirculardesign中的死码0x0014-0018 /android/pixel/About;.onStart()V 08-20 17:21:41.386:INFO/ALSAModule(2588):初始化的ALSA播放设备hifi 08-20 17:21:41.386:WARN/AudioFlinger(2588):写封锁108 msecs,3延迟写入,线程0x5e758 08-20 17:21:41.406:DEBUG/dalvikvm(4059):GC_EXTERNAL_ALLOC释放38K,52%免费2621K/5379K,外部190K/518K,暂停36ms 08-20 17: 21:41.596:INFO/AudioFlinger(2588):停止输出streamType(0,1)为1 08-20 17:21:41.596:DEBUG/AudioHardwareYamaha(2588):AudioStreamOut :: setParameters(keyValuePairs ="stop_output_streamtype = 1") 08-20 17:21:42.096:ERROR/yamaha :: media :: Parameters(2588):SalesCode = OPS 08-20 17:21:42.671:ERROR/lights(2707):write_int:path/sys/devices/virtual/misc/melfas_touchkey/brightness,value 2 08-20 17:21:42.671:WARN/PowerManagerService(2707):定时器0x7-> 0x3 | 0x3 08-20 17:21 :42.671:INFO/PowerManagerService(2707):Ulight 7-> 3 | 0 08-20 17:21:42.671:DEBUG/PowerManagerService(2707):setLightBrightness:mButtonLight:0 08-20 17:21:43.666:INFO/ALSAModule (2588):终止的ALSA播放设备hifi 08-20 17:21:44.086:错误/ yamaha :: media ::参数(2588):SalesCode = OPS 08-20 17:21:51.181:WARN/ActivityManager(2707):启动超时已过期,放弃唤醒锁定!08-20 17:21:51.336:WARN/ActivityManager(2707):HistoryRecord的活动空闲超时{40a6f0a8 com.squirculardesign.android.pixel/.About} 08-20 17:21:56.456:DEBUG/dalvikvm(2929): GC_EXPLICIT释放672K,53%免费3917K/8327K,外部12588K/12670K,暂停121ms 08-20 17:22:01.876:INFO/StatusBarPolicy(2834):onSignalStrengthsChanged 08-20 17:22:04.006:DEBUG/BatteryService(2707) :update start 08-20 17:22:04.011:ERROR/BatteryService(2707):TMU status = 0 08-20 17:22:04.011:DEBUG/BatteryService(2707):updateBattery level:79 scale:100 status:2 health :2现在:真实电压:4050温度:270技术:锂离子交流供电:假USB供电:真实图标:17302229
小智 6
这似乎总是发生,我问这个问题,在解释之后问题在我脑海中变得更清晰,所以不在上下文中的人可以理解......
我发现的修复是:
//Sets the icon to 'go home' button
@Override
protected void onStart() {
int versionNumber = Integer.valueOf(android.os.Build.VERSION.SDK);
if (versionNumber >= 11) {
super.onStart();
ActionBar actionBar = this.getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
else {
super.onStart();
}
}
Run Code Online (Sandbox Code Playgroud)
这解决了Gingerbread和FroYo中的问题,区别在于super.onStart(); 我们无论如何都会触发.
对于那些不可避免地要评论我的hackish/sticky tape修复的人:这个特定的App总是不需要ActionBar,我只是在Honeycomb中使用ActionBar项目,因为它已成为获取更多操作的UI练习.这就是我没有实现Ac的原因
| 归档时间: |
|
| 查看次数: |
2011 次 |
| 最近记录: |