类需要API级别11(当前最小值为8)

时间:2014-04-04 12:10:40

标签: android mobile sdk

我是Android Stuio的新手。我使用默认设置创建了一个项目,然后添加了一个片段布局,然后是片段类

我现在收到以下错误:

类需要API级别11(当前最小值为8)

在这一行:

公共类WeatherFragment扩展Fragment {

这是我的导入:

import android.app.Activity;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;;
import android.support.v4.app.FragmentManager;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.widget.DrawerLayout;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.app.Fragment;
import android.support.v4.app.ListFragment;

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.jassim.yallabahrain.app" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.jassim.yallabahrain.app.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

10 个答案:

答案 0 :(得分:4)

如果您坚持使用SDK版本8,我认为您必须使用android.support.v4.app.Fragment代替android.app.Fragment

之所以发生这种情况是因为Android SDK版本+11支持android.app.Fragment,如果您想使用它,则必须使用支持库。

答案 1 :(得分:2)

更改您的清单如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jassim.yallabahrain.app" >

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

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.jassim.yallabahrain.app.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

答案 2 :(得分:1)

请勿在清单文件中更改SDK,因为该值始终会被“ build.gradle”文件覆盖(如问题ID:GradleOverrides。中所指定)。

GradleOverrides Error

不仅如此,如果您尝试将SDK插入清单文件中,甚至无法使用:

GradleOverrides Error

因此,要解决此问题,请尝试此方法。

转到您的“ build.gradle”文件,并将其添加到“ defaultConfig”。

defaultConfig{

   minSdkVersion 15
   targetSdkVersion 28

}

defaultConfig

然后,删除您插入清单文件中的SDK,它将起作用。

答案 3 :(得分:0)

在应用程序标记开始之前在manifest.xml中添加以下行。

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

答案 4 :(得分:0)

基本上,您要使用的功能需要在当前Manifest文件中无法保证的最小API。您必须确保已设置,因为运行您的应用的任何用户如果使用较低的API来制作您的应用,可能会遇到问题。

您必须在清单文件中包含这样的语句,以确保用户将运行最小的11(以及编译代码的方式)。

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

答案 5 :(得分:0)

在清单

中添加此内容
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jassim.yallabahrain.app" >
<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="19" />
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.jassim.yallabahrain.app.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

答案 6 :(得分:0)

上面的所有答案都非常正确,但他们无法解释为什么会发生这种情况,错误的原因是您至少需要API等级11(Android 3.0)。这是必需的,因为您在API中使用了Fragments。碎片是在3.0版本中引入的。因此,如果您想允许Android版本低于3.0的设备,则无法使用碎片。

答案 7 :(得分:0)

在清单中添加以下行: 将最小sdk版本更改为11时,将有助于解决您的错误......

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

答案 8 :(得分:0)

您可以在Manifest中将minSdkVersion更改为11,如下所示。我希望它会有所帮助:

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.s1"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
       </activity>
   </application>

答案 9 :(得分:-1)

将您的清单更改为此

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.jassim.yallabahrain.app" >

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.jassim.yallabahrain.app.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>