【问题标题】:Compiling error with API 10使用 API 10 编译错误
【发布时间】:2012-11-26 21:21:03
【问题描述】:

我是按照developers.android.com 上的基本教程来创建名为DisplayMessageActivity 的活动的。它是一个空白活动,其中给出了教程中所示的所有规范。仅供参考,我使用 Min SDK = API 8,目标 SDK = API 16,编译 = API 10

接下来就是有两个错误:

  1. “DisplayMessageActivity 类型的方法 getActionBar() 未定义
  2. “home 无法解析或不是字段”

我尝试将 API 更改为 14,这会引发另一个问题,它希望最小 API 为 11。

这解决了这些问题,但主要问题是很多设备仍在使用 Gingerbread 或 FroYo。我不能为他们写吗?我必须走得更高吗?如何为他们写作?

【问题讨论】:

标签: java android api compilation


【解决方案1】:

首先,您需要确保针对最新版本的 Android 进行编译。您应该更新您的 sdk 版本,因为您正在为 API 10 但目标为 16 进行编译。如果您这样做,可能会出现问题,因此最好保持更新以确保安全。 这意味着在 Eclipse 中右键单击您的项目,单击属性,然后单击 Android。检查那里的最高版本 API。如果您有最新版本,则为 Android 4.2。然后在您的 AndroidManifest.xml 中,将 android:targetSdkVersion 设置为您选择的内容(我的案例 api 17)。

这应该确保您的应用程序基本上可以在 HoneyComb to JellyBean 上运行。但是,这个应用程序至少要在 froyo 上运行。下一部分将允许您的应用在所有设备上运行。

制作这样的方法:

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
    private void setupActionBar() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            // Show the Up button in the action bar.
            getActionBar().setDisplayHomeAsUpEnabled(true);
        }
    }

它会检查它在哪个 API 上运行,并且只有当它是蜂窝及更高版本时,才会启用操作栏。 从onCreate() 调用它您需要取出onCreate() 中的getActionBarCall,因为那里不再需要它。

至于 home 未启用,可能只是项目目标错误,或者您忘记写 android.R.id.home 而是写了 R.id.home

最后,您应该清理所有这些更改(项目 -> 清理)。

【讨论】:

    【解决方案2】:

    看看这个http://actionbarsherlock.com/,它会让你在低 api 级别的用户操作栏。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      相关资源
      最近更新 更多