Android Studio 如何摆脱“调用需要API级别26(当前最低级别为24)"?

pb3skfrl  于 2023-01-13  发布在  Android
关注(0)|答案(2)|浏览(258)

我怎样才能告诉Android Studio (3.0.1)不要在IntelliSense中显示API 26函数呢?这是相当误导的。如果我不能使用这些函数,为什么它要建议我使用这些函数呢?
例如:如果我使用java.util.Date,它会告诉我:
API 16起,不推荐使用"Date(int,int,int)":Android 4.1 (Jelly Bean)
如果使用java.time.Localtime,则得到:
需要API level 26(当前最小值为API 24
我的gradle是否正确?我希望应用程序在Android 7.0 max上运行。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "xxx.xxx.xxx"
        minSdkVersion 24
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.8'
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:design:26.1.0'
    implementation 'com.android.support:support-v4:26.1.0'
    implementation 'io.paperdb:paperdb:2.6'
    implementation 'com.github.yukuku:ambilwarna:2.0.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

谢谢大家!

mm9b1k5b

mm9b1k5b1#

自API 16起,不建议使用"Date(int,int,int)"

  • 弃用 *,但您仍然可以 * 使用它 *,只是意味着可能有一个 * 更好的 * 方法来做到这一点。

我希望应用程序在Android 7.0最大运行.
牛轧糖版本7.0 - 7.1.2,API 24 - 25
您可以测试设备正在运行哪个API,因此不要在旧设备上运行更高级的命令,否则会导致设备崩溃。此SDK_INT自DonutAndroid 1.6 / API4)起可用。
如果(安卓系统版本号SDK_INT〉=安卓系统版本号代码LOLLIPOP)
更改您的build. gradle以仅使用API 24

android {
    compileSdkVersion 24
    //each version of the Android Gradle Plugin now has a default version of the build tools.
    //buildToolsVersion "24.0.1" //minimum supported version (26.0.2) for Android Gradle Plugin 3.0.1
    defaultConfig {
        minSdkVersion 24
        targetSdkVersion 24
    }
    dependencies {
        //you don't need these with support:design
        implementation 'com.android.support:appcompat-v7:24.0.1'
        implementation 'com.android.support:support-v4:24.1.0'

        implementation 'com.android.support:design:24+' //26 for AS 3 ?
    }

注解

(The compile配置现在为deprecated,应替换为implementationAPI。)
参见support-library
compileSdkVersion是您问题的要点。我按您的要求做了,但通常的做法是尽可能高地编译(compileSdkVersion),最低编译到可以支持更多设备的程度(minSdkVersion)。

ki1q1bka

ki1q1bka2#

我已经做了一个Java类,并找到了解决方案后

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
{
    createChannels();
}

createChannels是我的方法。

相关问题