2011-07-02 37 views
1

我已經寫了幾個星期的第一個應用程序,今天我意識到如果我們想要開發蜂窩和普通手機,我們應該將它們打包爲一個應用程序而不是兩個應用程序有不同的目標。Honeycomb ActionBar&Phone App

所以我在Eclipse中開始了一個新的項目,目標是2.1(SDK級別7),並將我的Java,XML和其他資源從舊的(面向蜂窩的項目)複製到新的(面向手機+平板電腦的)項目。

一切都很順利,直到我遇到了ActionBar代碼的障礙,特別是在我設置應用程序圖標進入主要活動的地方 - 它出於某種原因不喜歡這樣。

我們應該如何爲兩個平臺編寫一個應用程序?我認爲它會像佈局的兩個版本和Java中的一些MINOR調整一樣簡單。

回答

0

我仔細觀察了新的(面向手機+平板電腦的)項目,看看是否有任何錯誤會導致問題。

原來在androidmanifest.xml中我有錯誤的targetsdk和minsdk級別。

我讓他們改爲正確的:

<uses-sdk 
    android:minSdkVersion="7" 
    android:targetSdkVersion="11" /> 

這種變化固定的問題。謝謝您的幫助。

1

ActionBar在Android 3.0的

首次推出如果你想你的應用程序,以進一步版本上運行,你必須檢查ActionBar可用(並運行特定的代碼),如果它不是,你將不得不提出另一種解決方案(也許你自己的實現)。

Build.VERSION可用於確定您的應用正在運行的Android版本。

+0

尤其是,您需要將Honeycomb特定的代碼引用隔離爲僅在加載Honeycomb時加載的類,否則,您將在運行時得到'VerifyError'崩潰。下面是一個示例項目,演示如何在操作欄中添加一個自定義的'View':https://github.com/commonsguy/cw-android/tree/master/Menus/ActionBarBC – CommonsWare

2

迄今爲止我發現的最好的例子是Google IO 2011 Schedule,可以免費獲得http://code.google.com/p/iosched/。該項目是專門爲此目的而建造的 - 1 apk提供了適用於手機的應用程序版本和適用於平板電腦的另一個版本。根據您的應用程序的結構,進行一些調整(主要或次要取決於您的觀點),該應用程序可以爲兩個設備平臺執行幾乎任何操作。