使用API​​ 10编译错误

时间:2012-12-09 03:39:59

标签: java android api compilation

我正在关注developers.android.com上的基本教程,并通过创建名为DisplayMessageActivity的活动来实现。这是一个空白活动,其中包含所有规范,如教程中所示。仅供参考,我使用Min SDK = API 8,Target SDK = API 16,Compile with = API 10

接下来是有两个错误:

  1. “对于DisplayMessageActivity类型
  2. ,方法getActionBar()未定义
  3. “家庭无法解决或不是一个领域”
  4. 我尝试将API更改为14,这需要另一个问题,它希望最小API为11。

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

2 个答案:

答案 0 :(得分:5)

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

enter image description here

这应该确保您的应用程序可以基本上在HoneyComb上运行到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,因为它不再需要了。

至于家庭没有启用,它可能只是一个错误的项目目标,或者你忘了写android.R.id.home而是写了R.id.home

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

答案 1 :(得分:0)

查看此http://actionbarsherlock.com/,它会让您在低api级别使用操作栏。