【问题标题】:How do I set the minimum api level for projects in Android Studio?如何在 Android Studio 中为项目设置最低 api 级别?
【发布时间】:2014-01-30 07:07:52
【问题描述】:

我最近将一个项目迁移到 Android Studio 0.4.3。 编译时,它给了我几行java错误,包括以下内容:

FragmentManager fm = getFragmentManager();

fm.findFragmentById()

@Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

getResources().getStringArray(R.array.course_descriptions); 

我看到以下错误消息:

Call requires API level 11 (current min is 7)

我正在运行 Android Studio .0.4.3。我还通过 SDK 管理器下载了 Android 4.4.2 (API 19)。

我在清单中添加了以下行:

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

我做了一个“使用 Gradle 文件同步项目”,清理并重建了项目。 我仍然看到同样的错误。

我该如何解决这个问题?

【问题讨论】:

  • 嗨,我认为您正在使用另一个版本的 android(不是 19)进行编译。如果您在 Eclipse 上,您可以尝试在 proyect 属性、android 库中检查是否有正确的 API 19。问候。
  • 我刚刚发现了一些有趣的东西。 Studio 捕获了一个错误:java.lang.ArrayIndexOutOfBoundsException: 20 at org.jetbrains.android.dom.converters.ApiVersionConverter.getApiLevelLabel(ApiVersionConverter.java:57)

标签: android gradle android-studio


【解决方案1】:

我有 0.8.6 版本,可以这样做:

在菜单中:文件 -> 项目结构。

在打开的菜单中,导航到app,然后在选项卡中选择Flavors

【讨论】:

  • 在 android Studio 1.2.2 中:在您建议的更改之后,您应该运行 Sync Project with Gradle files(图标按钮位于 Run b> 工具栏中的图标)以应用更改
【解决方案2】:

在截至 2020 年的最新版本中,执行以下步骤:

  1. 点击文件(左上角)
  2. 转到项目结构(Ctlr + Alt + Shift + S)
  3. 点击模块
  4. 在右侧窗格中,单击默认配置(中间一项)
  5. 更改最低 SDK 版本
  6. 应用并点击确定

完成!

【讨论】:

    【解决方案3】:

    如果您在最新版本的 Android Studio 上生成了项目,则该设置位于 gradle 配置文件中。在您的应用程序模块中找到build.gradle 文件。应该有这样的东西。

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    

    【讨论】:

      【解决方案4】:

      从 gradle 构建系统开始,您与 sdk 和编译 API 相关的所有设置都将被您在 build.gradle 文件中定义的内容覆盖。

      因此,如果您愿意,可以从 AndroidManifest.xml 中删除这些所有配置,并将它们保存在 build.gradle 文件中,以免造成混淆。

      因此请检查模块的build.gradle 文件中的minSdkVersion 是否引发错误。

      android {
          compileSdkVersion 19
          buildToolsVersion '19.0.1'
      
          defaultConfig {
              minSdkVersion 7      // Change 7 to 11 will solve your problem
              targetSdkVersion 19
          }
      
      }
      

      我更喜欢在我的顶级项目级别 build.gradle 文件中包含这些所有配置,因为如果不同模块中的配置不同,您最终会遇到 Manifest Merging 错误。

      【讨论】:

        【解决方案5】:

        完整的应用程序/build.gradle minSdkVersion、targetSdkVersion

        apply plugin: 'com.android.application'
        android {
        compileSdkVersion 22
        buildToolsVersion "22.0.1"
        
        defaultConfig {
            applicationId "com.yourapp.package"
            minSdkVersion 18
            targetSdkVersion 22
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        
        packagingOptions {
            exclude 'LICENSE.txt'
        }
        }
        
        dependencies {
        androidTestCompile fileTree(dir: 'libs', include: '*.jar')
        androidTestCompile('com.squareup.assertj:assertj-android:1.0.0'){
            exclude group: 'com.android.support', module:'support-annotations'
            }
        }
        

        【讨论】:

          【解决方案6】:

          只需按照以下步骤操作(适用于 android studio 用户):

          1. 右击App目录
          2. 选择“模块设置”选项
          3. 根据需要更改 ADK 平台
          4. 点击应用

          就这样啦,gradle会自动重建项目的。

          【讨论】:

            猜你喜欢
            • 2021-10-22
            • 1970-01-01
            • 1970-01-01
            • 2022-09-25
            • 1970-01-01
            • 2016-01-30
            • 2017-12-31
            • 1970-01-01
            • 2019-04-26
            相关资源
            最近更新 更多