【问题标题】:Call requires API level 16 (current min is 14)调用需要 API 级别 16(当前最低为 14)
【发布时间】:2015-08-25 17:37:31
【问题描述】:

我的代码中有这一行:

linearLayout.setBackground(drawable);

setBackground() 显示以下错误:

调用需要 API 级别 16(当前最低为 14)

这是什么意思?

我可以提高我的 API 级别吗?

更高/更低的 API 级别是什么意思?

如果 API 级别更高,它是否会限制我的应用可以使用的设备数量?

【问题讨论】:

标签: android android-layout android-fragments android-activity android-xml


【解决方案1】:

这是什么意思?

表示setBackground(Drawable)方法是在API Level 16中加入的,老设备没有。但是,您的应用的 minSdkVersion 是 14。因此,除非您在 API 级别 14 和 15 的设备上采取措施避免这条线,否则您的应用将在这些设备上崩溃。

我可以提高我的 API 级别吗?

您可以将 minSdkVersion 设置为 16。

如果 API 级别更高,它会限制我的应用可以使用的设备数量吗?

是的。如果您说您的minSdkVersion 是 16,那么运行低于该版本 Android 的设备将无法运行您的应用。

在撰写本文时,about 90% of Android devices accessing the Play Store are on API Level 16 or higher(即,正在运行 Android 4.1 或更高版本)。

您可以在the documentation 中阅读有关 API 级别概念的更多信息。请注意,此文档有点旧,因为它侧重于在清单中定义的 minSdkVersion。在 Android Studio 项目中,minSdkVersion 通常定义在您的app 模块的build.gradle 文件中。

【讨论】:

    【解决方案2】:

    我可以提高我的 API 级别吗?

    您可以将 API 设置为 16,它会将设备限制在 16 以下,但它可以在 API 16 及更高版本的设备上完美运行

    否则你可以使用API​​检查和设置

    final int sdk = android.os.Build.VERSION.SDK_INT;
    if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
        layout.setBackgroundDrawable( getResources().getDrawable(R.drawable.ready) );
    } else {
        layout.setBackground( getResources().getDrawable(R.drawable.ready));
    }
    

    【讨论】:

      【解决方案3】:

      使用仅在 API LEVEL >= 16 中受支持的验证方法(注意使用 ContextCompat 类:

        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
                  linearLayout.setBackground(ContextCompat.getDrawable(this, drawableid));
              }
      

      【讨论】:

        【解决方案4】:

        用途:

        layout.setBackgroudResource(R.drawable.ready);       
        

        【讨论】:

        • @fool-dev :这是一个答案,而不是一个问题。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-16
        • 1970-01-01
        • 1970-01-01
        • 2017-02-23
        相关资源
        最近更新 更多