我正在使用蓝牙LE来获取周围的设备,但是我没有得到一个列表,而且我还得到一个运行时异常,这里是stack-trace
06-18 13:59:33.188 10189-10189/com.labs.aress.bleomronkotlin E/AndroidRuntime: FATAL EXCEPTION: main Process: com.labs.aress.bleomronkotlin, PID: 10189 java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=0, data=null} to activity {com.labs.aress.bleomronkotlin/com.labs.aress.bleomronkotlin.MainActivity}: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data at android.app.ActivityThread.deliverResults(ActivityThread.java:4094) at android.app.ActivityThread.handleSendResult(ActivityThread.java:4137) at android.app.ActivityThread.-wrap20(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1529) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6123) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757) Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data at com.labs.aress.bleomronkotlin.BaseMainActivity.onActivityResult(BaseMainActivity.kt) at android.app.Activity.dispatchActivityResult(Activity.java:6931) at android.app.ActivityThread.deliverResults(ActivityThread.java:4090) at android.app.ActivityThread.handleSendResult(ActivityThread.java:4137) at android.app.ActivityThread.-wrap20(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1529) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6123) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
代码在这里
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
AppLog.dMethodIn()
super.onActivityResult(requestCode, resultCode, data)
if (REQUEST_CODE_SCAN != requestCode) {
AppLog.w("Unknown request code : $requestCode")
return
}
if (BleScanActivity.RESPONSE_CODE_CONNECT != resultCode) {
return
}
val discoverPeripheral = data.getParcelableExtra<DiscoverPeripheral?>(BleScanActivity.EXTRA_CONNECT_REQUEST_PERIPHERAL)
if (null == discoverPeripheral) {
AppLog.e("null == discoverPeripheral")
return
}
initDeviceInfoView()
initConnectionView()
onConnect(discoverPeripheral)
}
我不明白为什么data抛出null
你的代码的问题是data参数不可为空,但是Android用空值调用它。
如果你覆盖Android Studio中的onActivityResult函数,你得到的函数签名实际上是
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)
而不是你所拥有的
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent)
不同之处在于 ?在“数据:意图”之后添加 ?并对代码进行适当的更改(以解释可为 null 的值),它应该可以正常工作。
我正在尝试使用静态编程语言反射从类及其成员生成JFrames。我创建了几个注释,其中一些在运行时存在,一些不存在。 组件注释: 启用注释: 我是这样使用这两个注释的: 如果我运行下面的代码: 我得到的唯一输出是这样的:< code>btn: [Component] 由于Retention设置为
我有一个代码如下: 当我尝试运行代码时,我得到这样的消息: 我提到了这个链接,但不明白如何修改上面的代码,使其可行:例外:需要mockito,但没有调用,实际上与这个mock没有任何交互 有人能帮忙吗。 通过添加c.getResult(新的A(新的B()),新的F())解决了上述错误;在上面 我错过了什么?我一直在使用的课程:
我如何将下面的代码从Java转换成Kotlin?
本节将介绍如何获取本书的代码和安装运行代码所依赖的软件。虽然跳过本节不会影响后面的阅读,但我们还是强烈建议读者按照下面的步骤来动手操作一遍。本书大部分章节的练习都涉及改动代码并观察运行结果。因此,本节是完成这些练习的基础。 获取代码并安装运行环境 本书的内容和代码均可在网上免费获取。我们推荐使用conda来安装运行代码所依赖的软件。conda是一个流行的Python包管理软件。Windows和Li
我正在使用以下联系人获取应用程序的代码,我正在获得Android运行时:致命的异常:第17行的主要错误。 下面是我的logcat E/AndroidRuntime:致命异常:主进程:com.example.alpesh_pc.contactList,PID:3833 java.lang.RuntimeException:无法启动activity组件信息{com.example.alpesh_pc.
我对科特林聪明的演员感到困惑。在我看来,等价于