我正在实现谷歌的方向API。我的应用程序支持minSdkVersion 23
和java。时间此处不支持即时
。
是否有解决方案,或者我应该检查用户的版本,并允许此功能(如果其版本受支持)?
DirectionsResult directionsResult = DirectionsApi.newRequest(geoApiContext)
.mode(TravelMode.DRIVING)
.origin(new com.google.maps.model.LatLng(mapFragment.getUserCoords().latitude, mapFragment.getUserCoords().longitude))
.destination(tabHandlerCommunication.destinationBarCoords)
.departureTime(Instant.now()) // <-- error here
.await();
错误:
调用需要API级别26(当前最小值为23):java。时间瞬间#现在少了。。。(Ctrl-F1)检查信息:此检查扫描应用程序中的所有Android API调用,并警告此应用程序针对的所有版本上不可用的任何调用(根据清单中的最小SDK属性)。如果你真的想使用这个API,并且不需要支持旧设备,只需在你的构建中设置minSdkVersion。格拉德尔或安德烈。xml文件。如果您的代码有意访问较新的API,并且您已确保(例如,通过条件执行)此代码只会在受支持的平台上被调用,那么您可以使用@TargetApi注释对您的类或方法进行注释,指定要应用的本地最小SDK,例如@TargetApi(11),这样,该检查将11而不是清单文件的最低SDK视为所需的API级别。如果有意在样式定义中设置android:attributes,请确保将其放置在values vNN文件夹中,以避免在某些设备上遇到运行时冲突,因为制造商在这些设备上添加了自定义属性,其ID与更高平台上的新属性冲突。类似地,您可以在XML文件中使用tools:targetApi=“11”来指示元素将仅在适当的上下文中膨胀。问题编号:NewApi
JAVA时间在旧的和新的Android设备上都能很好地工作。它至少需要Java6。
org.threeten.bp
导入日期和时间类。java.time
。 java.time
到Java6和7的Backport(用于JSR-310的Threeten)。 在阅读了《开发者指南》之后,发现要么String
now
,
以及常见的int
UNIX历元时间戳,都是可接受的值:
出发时间
-指定所需的出发时间。从UTC 1970年1月1日午夜起,可以将时间指定为以秒为单位的整数。或者,您可以指定一个值now
,该值将出发时间设置为当前时间(精确到最接近的秒)。
在检查Java
客户端的源代码时,有一种方便的方法:
public DirectionsApiRequest departureTimeNow() {
return param("departure_time", "now");
}
因此java.time.Instant
可以被规避,以实现向后兼容。
我已经提交了第559期...分叉库似乎是设置其他时间戳的唯一方法。
如果您使用的是Gradle插件4.0或更高版本(Android Studio 4.0或更高版本),那么您可以利用D8核心库Desugaring。这包括java中的一部分功能。时间
将允许您使用java。时间项目中的即时
;即使您需要支持早于API 26的版本。
在模块的构建中。gradle
文件:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
coreLibraryDesugaringEnabled true
}
// If using Kotlin
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
}
dependencies {
…
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.5'
}
您现在应该可以无错误地使用这个类了。
一些来源:
我的代码中有这样一行: 显示以下错误: 调用需要API级别16(当前最小值为14) 如果API级别较高,它是否限制了我的应用程序可以使用的设备数量?
我正在尝试添加运行时权限android(6.0.1)API 23,如果我使用SDK版本(最小和目标版本均为23)它很好,如下所示, 如果我改变android:minSdkVersion(小于23) 例如: 我在下面收到错误: 调用需要API级别23(当前最小值为14):android.app.Activity#requestPermissions,checkSelfPermission 对于以下两
问题内容: 我是JSON的新手。我按照本教程创建了示例应用程序。当我尝试将代码复制到我的日食时,它显示错误。 请指教。谢谢 问题答案: 转到android AndroidManifest.xml 在您的文件中是8 将SDK版本更改为9,如下所示
问题内容: 我是android的新手,并且正在开发android应用程序。但是我的包装行在MainActivity.java类中给出了此错误。谁能告诉我这的原因吗?这是我的课程,打包行给出了此错误。 问题答案: 首先,介绍一些细节。有不同 级别 的Android API,每个级别可能会引入新功能,如此处所示。 创建Android应用程序时,您指定运行应用程序的最低级别。这是在做与节:看到这里了解详
在SDK更新(23)之后,我得到了这个lint错误,我没有对我的代码做任何更改,它在api级别为9的设备上运行良好。另外,我在代码中根本不调用android.app.活动#onCreateView。如果我单击自动修复,它会将@SuppressLint(NewApi)放入类,这样错误就会消失,我想确定这是否是要走的路。
我想在android API中发送通知 我想我的Gradle文件也有问题。 我尝试添加一个if语句,条件是