2011-08-20 97 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」。

相關問題