如何修复 Android 中的“调用需要 API 级别 26(当前最低为 25)”错误

     2023-02-25     26

关键词:

【中文标题】如何修复 Android 中的“调用需要 API 级别 26(当前最低为 25)”错误【英文标题】:How to fix "Call requires API level 26 (current min is 25) " error in Android 【发布时间】:2019-11-03 20:46:33 【问题描述】:

我知道这个问题可能是重复的,但我没有为我的问题找到任何答案,我在需要 API 26 且我设备的 API 为 25 的 Android 应用中使用 LocalDateTime

我能做什么?非常感谢您的帮助。

【问题讨论】:

很明显,您不能在旧设备上使用新功能。你要么自己实现这个功能,要么找一个提供类似功能的库 【参考方案1】:

您需要使用 https://github.com/JakeWharton/ThreeTenABP 才能将 LocalDateTime 与 Android API

将依赖项添加到您的项目中(请按照项目自述文件):

implementation 'com.jakewharton.threetenabp:threetenabp:1.2.1'

然后更改您的 LocalDateTime 导入来源:

import java.time.LocalDateTime;

到:

import org.threeten.bp.LocalDateTime;

更新:

上面提到的库不再是JakeWharton/ThreeTenABPREADME中提到的最好的方法:

注意:此库的开发正在结束。请考虑在未来几个月内切换到 Android Gradle 插件 4.0、java.time.* 及其核心库脱糖功能。

要在旧 API 级别中使用 LocalDateTime,请使用 Gradle 插件 4.0 中的脱糖功能: https://developer.android.com/studio/write/java8-support#library-desugaring

【讨论】:

非常感谢!你救了我。 对你有帮助! 现在在 ThreeTenABP repo 中推荐你使用代码去糖(developer.android.com/studio/write/…)【参考方案2】:

在较低版本的 Android 上使用 LocalDateTime 的最佳方法是脱糖(您必须具有 Android Gradle 插件版本 4.0 或更高版本)。只需将以下行添加到您的 app 模块 gradle 文件中:

最后加上ff。依赖于你的依赖块:

coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10'

【讨论】:

这是谷歌推荐的方式。参考:developer.android.com/studio/write/…【参考方案3】:

您可以使用ThreeTenBP。但安卓系统推荐使用Jake Wharton的ThreeTenABP。

为什么不使用 ThreeTenBP?

与在 Android 上使用 Joda-Time 的问题类似,threetenbp 使用 JAR 资源来加载时区信息。这在 Android 上是一种效率极低的机制。

此库将时区信息作为标准 Android 资源放置,并提供自定义加载器以高效解析它。

为什么不使用 Joda-Time?

Joda-Time 有一个非常大的 API,它带来了非常大的二进制大小和大量的方法数。 JSR-310 和 Joda-Time 的创建者也表示,虽然 Joda-Time 没有被破坏,但它确实存在设计缺陷。

如果您已经在使用 Joda-Time,除非它的大小或方法计数与您相关,否则几乎没有理由切换。然而,对于新项目,这个库提供 Java 8 中的标准 API 作为一个更小的包,不仅在二进制大小和方法数上,而且在 API 大小上。

这些解释来自 Jake Wharton 的 ThreeTenABP。

【讨论】:

我只是按照你给我的链接,但错误总是存在:(【参考方案4】:

要在较低版本的 Android 上使用 LocalDateTime 是通过去糖(您必须有 Android Gradle 插件版本 4.0 或更高版本)启用 java8 并在您的 app.gradle 中使用以下代码

android 
    defaultConfig 
        // Required when setting minSdkVersion to 20 or lower
        multiDexEnabled = true
    

    compileOptions 
        // Flag to enable support for the new language APIs
        coreLibraryDesugaringEnabled = true // <- this flag is required

        // Sets Java compatibility to Java 8
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    

    // For Kotlin projects
    kotlinOptions 
        jvmTarget = "1.8"
    


dependencies 
    coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.1.5") // <- this dependency is required

Supporting docs

【讨论】:

调用需要 API 级别 21(当前最低为 17):android.hardware.camera2.CameraDevice.StateCallback

】调用需要API级别21(当前最低为17):android.hardware.camera2.CameraDevice.StateCallback【英文标题】:callrequiresAPIlevel21(currentminis17):android.hardware.camera2.CameraDevice.StateCallback【发布时间】:2017-02-2323:41:36【问题描述】:AndroidStudio中的错误... 查看详情

如何修复从 android 中的 FusedLocationProviderClient 获取空位置值

】如何修复从android中的FusedLocationProviderClient获取空位置值【英文标题】:HowdoifixthegettingnulllocationvaluefromFusedLocationProviderClientinandroid【发布时间】:2019-09-2911:28:52【问题描述】:我一直在尝试使用android中的FusedLocationProviderClient获... 查看详情

如何修复 Genexus 中的 Android 编译错误?

】如何修复Genexus中的Android编译错误?【英文标题】:HowtofixaAndroidCompilationErrorinGenexus?【发布时间】:2021-11-1611:58:55【问题描述】:当我尝试运行为android编译的web面板时,我收到此错误:错误:AndroidSDK的以下组件丢失或不符合... 查看详情

如何修复解析 XML:android 中的未绑定前缀

】如何修复解析XML:android中的未绑定前缀【英文标题】:HowtofixparsingXML:unboundprefixinandroid【发布时间】:2014-12-2905:48:13【问题描述】:我在android中遇到XML:Unboundprefix错误,我尝试了很多,但仍然出现,请尽快解决........................ 查看详情

如何修复 Android.harware.Camera 中的 setParameters 失败?

】如何修复Android.harware.Camera中的setParameters失败?【英文标题】:HowtofixsetParametersFailedinAndroid.harware.Camera?【发布时间】:2017-04-2610:13:25【问题描述】:嗨我在多个设备上都收到此错误,设置参数失败...在Android中创建相机应用时... 查看详情

Android Studio: List.of() '调用需要 API 级别...'

】AndroidStudio:List.of()\\\'调用需要API级别...\\\'【英文标题】:AndroidStudio:List.of()\'CallrequiresAPIlevel...\'AndroidStudio:List.of()\'调用需要API级别...\'【发布时间】:2021-12-2718:42:34【问题描述】:我正在尝试在我的一个AndroidStudio项目中使用Li... 查看详情

Android studio:调用需要 API 级别 16 错误

】Androidstudio:调用需要API级别16错误【英文标题】:Androidstudio:callrequiresAPILevel16error【发布时间】:2013-05-1114:18:55【问题描述】:我在AndroidStudio中遇到以下错误。sqlitedatabase.close()方法从API级别1开始可用,但androidstudioide无法检测... 查看详情

调用需要 API 26(最小为 18):android.app.NotificationChannel

】调用需要API26(最小为18):android.app.NotificationChannel【英文标题】:CallRequiresAPI26(minis18):android.app.NotificationChannel【发布时间】:2019-09-2210:30:55【问题描述】:我想在androidAPI我认为我的Gradle文件也有问题。我尝试添加条件为andro... 查看详情

如何修复动态适配器包装器 Android 中的 notifyDataSetChanged/ListView 问题

】如何修复动态适配器包装器Android中的notifyDataSetChanged/ListView问题【英文标题】:HowtofixnotifyDataSetChanged/ListViewproblemsindynamicAdapterwrapperAndroid【发布时间】:2011-06-0118:05:23【问题描述】:总结:尝试通过自定义适配器包装器将标题... 查看详情

如何修复 Android 模拟器中的“无法连接到相机服务”异常

】如何修复Android模拟器中的“无法连接到相机服务”异常【英文标题】:Howtofix"Failtoconnecttocameraservice"exceptioninAndroidemulator【发布时间】:2014-12-0523:00:54【问题描述】:当我在模拟器中运行我的Android应用程序时,我遇到... 查看详情

如何修复 Android Studio / SQLite 中的“空对象引用”错误? [复制]

】如何修复AndroidStudio/SQLite中的“空对象引用”错误?[复制]【英文标题】:Howtofix\'nullobjectreference\'errorinAndroidStudio/SQLite?[duplicate]【发布时间】:2017-04-2412:09:08【问题描述】:我正在编写一个简单的社交媒体应用程序,但在将新... 查看详情

如何修复错误:从android studio运行时flutter中的processDebugMainManifest DEBUG

】如何修复错误:从androidstudio运行时flutter中的processDebugMainManifestDEBUG【英文标题】:Howtofixerror:processDebugMainManifestDEBUGinflutterwhilerunfromandroidstudio【发布时间】:2021-12-2707:06:25【问题描述】:FAILURE:构建失败并出现异常。出了什... 查看详情

如何修复 Android Studio 中的 React Native 应用程序错误?

】如何修复AndroidStudio中的ReactNative应用程序错误?【英文标题】:HowtofixReactNativeapperrorinAndroidStudio?【发布时间】:2020-11-1522:01:37【问题描述】:当我尝试在AndroidStudio中运行我的ReactNative应用程序时出现以下错误。运行应用程序... 查看详情

android:如何修复类 CardsActivity.CardPagerAdapter 中的错误构造函数 CardPagerAdapter 不能应用于给定类型

】android:如何修复类CardsActivity.CardPagerAdapter中的错误构造函数CardPagerAdapter不能应用于给定类型【英文标题】:android:howtofixerrorconstructorCardPagerAdapterinclassCardsActivity.CardPagerAdaptercannotbeappliedtogiventypes【发布时间】:2017-04-0209:54:3 查看详情

调用需要 API 级别 24(当前最低为 8):新的 android.location.GnssStatus.Callback

】调用需要API级别24(当前最低为8):新的android.location.GnssStatus.Callback【英文标题】:CallrequiresAPIlevel24(currentminis8):newandroid.location.GnssStatus.Callback【发布时间】:2016-12-2003:23:51【问题描述】:registerGnssStatusCallback是在API24中引入的... 查看详情

调用需要 API 级别 23(当前最低为 14):android.app.Activity#requestPermissions,checkSelfPermission [重复]

】调用需要API级别23(当前最低为14):android.app.Activity#requestPermissions,checkSelfPermission[重复]【英文标题】:CallrequiresAPIlevel23(currentminis14):android.app.Activity#requestPermissions,checkSelfPermission[duplicate]【发布时间】:2016-06-1617 查看详情

setAdapter“调用需要 API 级别 11(当前最低为 8):android.widget.AbsListView#setAdapter”?

】setAdapter“调用需要API级别11(当前最低为8):android.widget.AbsListView#setAdapter”?【英文标题】:setAdapter"CallrequiresAPIlevel11(currentminis8):android.widget.AbsListView#setAdapter"?【发布时间】:2012-09-1418:11:04【问题描述】:我在扩展Fr... 查看详情

如何修复 Android Studio 中的 INSTALL_FAILED_INVALID_APK 错误?

】如何修复AndroidStudio中的INSTALL_FAILED_INVALID_APK错误?【英文标题】:HowtofixINSTALL_FAILED_INVALID_APKerrorinAndroidStudio?【发布时间】:2020-07-0213:32:18【问题描述】:我最近将我的AndroidStudio更新到3.6.1,因此也将gradle插件更新到3.6.1,并将... 查看详情