[BUG] NullPointerException: java.lang.invoke.MethodHandles$Lookup java.lang.invoke.MethodHandles$Lookup.in(java.lang.Class)
- Dominant language
- Java
- Stars
- 4.4k
- Forks
- 613
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 6
Description
### 问题描述
在 Android 环境下使用 JSON.parseObject、JSON.toJSONString 等方法时抛出 NullPointerException:
java.lang.NullPointerException: Attempt to invoke virtual method
'java.lang.invoke.MethodHandles$Lookup java.lang.invoke.MethodHandles$Lookup.in(java.lang.Class)'
on a null object reference
### 环境信息
*请填写以下信息:*
- OS 信息:Android 16 (API 36)
- JDK 信息:JDK 21 (编译)
- 版本信息:Fastjson2 2.0.61
### 重现步骤
*如何操作可以重现该问题:*
```kotlin
data class TestModel(
var id: Int = 0,
var name: String = "",
var value: String = ""
)
val jsonString = """
{
"id": 1,
"name": "test",
"value": "hello"
}
""".trimIndent()
val result = JSON.parseObject(jsonString, TestModel::class.java)
val result = jsonString.parseObject()
```
### 期待的正确结果
预期是返回
```kotlin
TestModel(id=1, name=test, value=hello)
```
### 相关日志输出
#### 附加信息
Contributor guide
Research direction
Start by reproducing the failure on Android API 36 with JDK 21 using JSON.parseObject and JSON.toJSONString, then inspect the stack trace around MethodHandles$Lookup.in. Compare the behavior for the Kotlin TestModel example and confirm that deserialization returns the expected TestModel value without a NullPointerException.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, java, kotlin
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100