2011-08-20 61 views
5

--The匿名回答是我的回答,我解决了这一问题.--应用程序崩溃的升级Froyo和姜饼

我一直在为Android编写应用程序,一切都在蜂窝运作良好,但不打漂亮在我的FroYo &姜饼装置(与你期望的相反)。

这里是我认为这是导致该问题的代码:

@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); 
    } 
} 

这里我实现了动作条的图标式到户能力,我添加了VERSIONNUMBER变量,因为我相信没有一个动作条的在Honyecomb之前的设备在运行时引发了问题,但它仍然崩溃,我认为这是问题所在,虽然我在调试时很糟糕,并且不了解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:17:21:41.346:DEBUG/dalvikvm(4059):VFY:在0x0011 08-20 17:21:41.346替换操作码0x6e:DEBUG/dalvikvm(4059):VFY:死码0x0014-0018在 Lcom/squirculardesign/android/pixel/About; .onStart()V 08-20 17:21:41.386:INFO/ALSAModule(2588):Initialized ALSA PLAYBACK device hifi 08-20 17:21:41.386:WARN/AudioFlinger (2588):写封锁 108毫秒,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):Timer 0x7-> 0x3 | 0x3 08-20 17:21:42.671:信息/ PowerManagerService(2707):Ulight 7-> 3 | 0 08-20 17:21:42.671:DEBUG/PowerManagerService(2707):setLightBrightness: mButtonLight:0 08-20 17:21:43.666:信息/ ALSAModule(2588):终止 ALSA PLAYBACK设备hifi 08-20 17:21:44.086: 错误/ yamaha :: media ::参数(2588):SalesCode = OPS 08-20 17 :21:51.181:WARN/Ac tivityManager(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):更新开始08-20 17:22:04.011:ERROR/BatteryService(2707):TMU status = 0 08-20 17:22:04.011:DEBUG/BatteryService(2707):updateBattery等级:79 规模:100状态:2卫生:2本:真正的电压:4050温度: 270技术:锂离子电池AC供电:假USB供电:真正的图标:17302229

+0

你能从logcat发布错误吗? – arunkumar

+0

补充,我希望我复制正确的部分?也;格式很糟糕。 – rabbitt

+0

只是说,测试一个确切的SDK版本号是一个坏主意。至少你应该做> =与未来版本兼容(当你无法检查某个特定功能时)。 – aberaud

回答

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(); 
    } 
} 

这两个姜饼&升级Froyo解决问题,所不同的是super.onS酸();无论如何,我们都会触发。

对于那些你们谁不可避免地会在我的hackish /胶带修复评论:这个特殊的应用程序并不需要一个动作条往常一样,我只是用在蜂窝的动作条的项目,因为它已成为UI实践中得到更多操作。这就是为什么我没有实现的AC

+1

这是我发现的答案,但必须匿名发帖,因为我不能在8个小时内回答我自己的问题,直到代表> 100,所以请+1我的问题,以便我可以:P。 – rabbitt

+1

为什么不先super.onStart(),然后在if和bin中执行操作栏的行else? – Hamid

3

有你记录了哪些VERSIONNUMBER其实是?我猜你的陈述是真的。所以尝试记录versionNumber等于什么。

你真的应该使用

int versionNumber = android.os.Build.VERSION.SDK_INT 
0

检查也这样:

public boolean onOptionsItemSelected(MenuItem item) { 

if(item.getItemId()==android.R.id.home){ 
    Intent intent = new Intent(this, YourHomeActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    return true; 
} 

您必须声明“item.getItemId()== android.R.id.home”十“给”了您的主页活动名称为“YourHomeActivity.class”。 现在当有人按下“向上”按钮时,您将被重定向到您的主页活动“YourHomeActivity.class”。

相关问题