2011-07-02 39 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提供了适用于手机的应用程序版本和适用于平板电脑的另一个版本。根据您的应用程序的结构,进行一些调整(主要或次要取决于您的观点),该应用程序可以为两个设备平台执行几乎任何操作。