【发布时间】:2020-06-30 13:21:59
【问题描述】:
我想创建一个SensorEvent 对象来模拟传感器数据。所以我用这个反射代码来创建SensorEvent
private fun getSensorEventObject(size : Int) : SensorEvent?{
val cons = SensorEvent::class.constructors.toList()
if (cons.isNotEmpty()) {
return cons[0].call(size)
}
return null
}
这在真实设备上运行良好。但是当我在模拟器中运行这段代码时,这不起作用。我遇到了这个异常
kotlin.reflect.full.IllegalCallableAccessException: java.lang.IllegalAccessException: Class java.lang.Class<kotlin.reflect.jvm.internal.calls.CallerImpl$Constructor> cannot access method void android.hardware.SensorEvent.<init>(int) of class java.lang.Class<android.hardware.SensorEvent>
不确定,因为模拟器没有真正的硬件,这就是我遇到异常的原因。
当应用程序在模拟器中运行时,我有什么方法可以创建 SensorEvent 对象?
【问题讨论】:
标签: android reflection android-emulator android-sensors