[Bug]:解析出现报错
框架版本【必填】
9.5
问题描述【必填】
- 我使用
com.github.getActivity:EasyHttp:12.8框架,代码拷贝的是 EasyHttp 的模板代码,使用com.github.getActivity:GsonFactory:9.5解析的时候会报错,错误信息
No virtual method getModule()Ljava/lang/Module; in class Ljava/lang/Class; or its super classes (declaration of 'java.lang.Class' appears in /apex/com.android.art/javalib/core-oj.jar)
java.lang.NoSuchMethodError: No virtual method getModule()Ljava/lang/Module; in class Ljava/lang/Class; or its super classes (declaration of 'java.lang.Class' appears in /apex/com.android.art/javalib/core-oj.jar)
at kotlin.reflect.jvm.internal.impl.serialization.deserialization.builtins.BuiltInsResourceLoader.loadResource(BuiltInsResourceLoader.java:26)
at kotlin.reflect.jvm.internal.impl.descriptors.runtime.components.ReflectKotlinClassFinder.findBuiltInsData(ReflectKotlinClassFinder.kt:52)
at kotlin.reflect.jvm.internal.impl.builtins.jvm.JvmBuiltInsPackageFragmentProvider.findPackage(JvmBuiltInsPackageFragmentProvider.kt:60)
at kotlin.reflect.jvm.internal.impl.serialization.deserialization.AbstractDeserializedPackageFragmentProvider$fragments$1.invoke(AbstractDeserializedPackageFragmentProvider.kt:35)
at kotlin.reflect.jvm.internal.impl.serialization.deserialization.AbstractDeserializedPackageFragmentProvider$fragments$1.invoke(AbstractDeserializedPackageFragmentProvider.kt:34)
at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
at kotlin.reflect.jvm.internal.impl.serialization.deserialization.AbstractDeserializedPackageFragmentProvider.collectPackageFragments(AbstractDeserializedPackageFragmentProvider.kt:43)
at kotlin.reflect.jvm.internal.impl.descriptors.PackageFragmentProviderKt.collectPackageFragmentsOptimizedIfPossible(PackageFragmentProvider.kt:50)
at kotlin.reflect.jvm.internal.impl.descriptors.impl.CompositePackageFragmentProvider.collectPackageFragments(CompositePackageFragmentProvider.kt:47)
at kotlin.reflect.jvm.internal.impl.descriptors.PackageFragmentProviderKt.collectPackageFragmentsOptimizedIfPossible(PackageFragmentProvider.kt:50)
at kotlin.reflect.jvm.internal.impl.descriptors.impl.CompositePackageFragmentProvider.collectPackageFragments(CompositePackageFragmentProvider.kt:47)
at kotlin.reflect.jvm.internal.impl.descriptors.PackageFragmentProviderKt.collectPackageFragmentsOptimizedIfPossible(PackageFragmentProvider.kt:50)
at kotlin.reflect.jvm.internal.impl.descriptors.PackageFragmentProviderKt.packageFragments(PackageFragmentProvider.kt:41)
at kotlin.reflect.jvm.internal.impl.descriptors.impl.LazyPackageViewDescriptorImpl$fragments$2.invoke(LazyPackageViewDescriptorImpl.kt:38)
at kotlin.reflect.jvm.internal.impl.descriptors.impl.LazyPackageViewDescriptorImpl$fragments$2.invoke(LazyPackageViewDescriptorImpl.kt:37)
at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:527)
at kotlin.reflect.jvm.internal.impl.storage.StorageKt.getValue(storage.kt:42)
at kotlin.reflect.jvm.internal.impl.descriptors.impl.LazyPackageViewDescriptorImpl.getFragments(LazyPackageViewDescriptorImpl.kt:37)
at kotlin.reflect.jvm.internal.impl.descriptors.impl.LazyPackageViewDescriptorImpl$memberScope$1.invoke(LazyPackageViewDescriptorImpl.kt:42)
at kotlin.reflect.jvm.internal.impl.descriptors.impl.LazyPackageViewDescriptorImpl$memberScope$1.invoke(LazyPackageViewDescriptorImpl.kt:41)
at kotlin.reflect.jvm.internal.impl.resolve.scopes.LazyScopeAdapter$lazyScope$1.invoke(LazyScopeAdapter.kt:28)
at kotlin.reflect.jvm.internal.impl.resolve.scopes.LazyScopeAdapter$lazyScope$1.invoke(LazyScopeAdapter.kt:27)
at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:527)
2024-01-23 10:33:42.733 19935-19991 EasyHttp D...pi@c16eb70 cn.smart.hospital E at kotlin.reflect.jvm.internal.impl.resolve.scopes.LazyScopeAdapter.getWorkerScope(LazyScopeAdapter.kt:34)
at kotlin.reflect.jvm.internal.impl.resolve.scopes.AbstractScopeAdapter.getContributedClassifier(AbstractScopeAdapter.kt:44)
at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns$3.invoke(KotlinBuiltIns.java:91)
at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns$3.invoke(KotlinBuiltIns.java:88)
at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:651)
at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getBuiltInClassByName(KotlinBuiltIns.java:223)
at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getAny(KotlinBuiltIns.java:228)
at kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns.getAnyType(KotlinBuiltIns.java:498)
at kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaTypeParameterDescriptor.computeNotEnhancedBounds(LazyJavaTypeParameterDescriptor.kt:56)
at kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaTypeParameterDescriptor.resolveUpperBounds(LazyJavaTypeParameterDescriptor.kt:48)
at kotlin.reflect.jvm.internal.impl.descriptors.impl.AbstractTypeParameterDescriptor$TypeParameterTypeConstructor.computeSupertypes(AbstractTypeParameterDescriptor.java:168)
at kotlin.reflect.jvm.internal.impl.types.AbstractTypeConstructor$supertypes$1.invoke(AbstractTypeConstructor.kt:83)
at kotlin.reflect.jvm.internal.impl.types.AbstractTypeConstructor$supertypes$1.invoke(AbstractTypeConstructor.kt:83)
at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedLazyValueWithPostCompute.invoke(LockBasedStorageManager.java:481)
at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedNotNullLazyValueWithPostCompute.invoke(LockBasedStorageManager.java:512)
at kotlin.reflect.jvm.internal.impl.types.AbstractTypeConstructor.getSupertypes(AbstractTypeConstructor.kt:30)
at kotlin.reflect.jvm.internal.impl.descriptors.impl.AbstractTypeParameterDescriptor.getUpperBounds(AbstractTypeParameterDescriptor.java:119)
at kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.SignatureEnhancement$SignatureParts.boundsNullability(signatureEnhancement.kt:445)
at kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.SignatureEnhancement$SignatureParts.nullabilityInfoBoundsForTypeParameterUsage(signatureEnhancement.kt:428)
at kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.SignatureEnhancement$SignatureParts.extractQualifiersFromAnnotations(signatureEnhancement.kt:358)
at kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.SignatureEnhancement$SignatureParts.computeQualifiersForOverride(signatureEnhancement.kt:539)
at kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.SignatureEnhancement$SignatureParts.computeIndexedQualifiersForOverride(signatureEnhancement.kt:479)
at kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.SignatureEnhancement$SignatureParts.enhance(signatureEnhancement.kt:273)
at kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.SignatureEnhancement.enhanceSignature(signatureEnhancement.kt:211)
at kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.SignatureEnhancement.enhanceSignatures(signatureEnhancement.kt:151)
at kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaClassMemberScope$constructors$1.invoke(LazyJavaClassMemberScope.kt:101)
at kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaClassMemberScope$constructors$1.invoke(LazyJavaClassMemberScope.kt:83)
2024-01-23 10:33:42.736 19935-19991 EasyHttp D...pi@c16eb70 cn.smart.hospital E at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
at kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:527)
at kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaClassDescriptor.getConstructors(LazyJavaClassDescriptor.kt:141)
at kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaClassDescriptor.getConstructors(LazyJavaClassDescriptor.kt:44)
at kotlin.reflect.jvm.internal.KClassImpl.getConstructorDescriptors(KClassImpl.kt:203)
at kotlin.reflect.jvm.internal.KClassImpl$Data$constructors$2.invoke(KClassImpl.kt:94)
at kotlin.reflect.jvm.internal.KClassImpl$Data$constructors$2.invoke(KClassImpl.kt:47)
at kotlin.reflect.jvm.internal.ReflectProperties$LazySoftVal.invoke(ReflectProperties.java:92)
at kotlin.reflect.jvm.internal.ReflectProperties$Val.getValue(ReflectProperties.java:31)
at kotlin.reflect.jvm.internal.KClassImpl$Data.getConstructors(Unknown Source:7)
at kotlin.reflect.jvm.internal.KClassImpl.getConstructors(KClassImpl.kt:238)
at kotlin.reflect.full.KClasses.getPrimaryConstructor(KClasses.kt:40)
at com.hjq.gson.factory.constructor.KotlinDataClassDefaultValueConstructor.construct(KotlinDataClassDefaultValueConstructor.kt:25)
at com.hjq.gson.factory.constructor.ReflectCreatorConstructor.construct(ReflectCreatorConstructor.java:28)
at com.hjq.gson.factory.element.ReflectiveTypeAdapter.read(ReflectiveTypeAdapter.java:57)
at com.google.gson.Gson.fromJson(Gson.java:1227)
at com.google.gson.Gson.fromJson(Gson.java:1137)
at com.google.gson.Gson.fromJson(Gson.java:1047)
at com.google.gson.Gson.fromJson(Gson.java:1014)
at cn.smart.hospital.http.model.RequestHandler.requestSuccess(RequestHandler.java:108)
at com.hjq.http.callback.NormalCallback.onHttpResponse(NormalCallback.java:106)
at com.hjq.http.callback.BaseCallback.onResponse(BaseCallback.java:72)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:203)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
2024-01-23 10:33:42.745 19935-19991 EasyHttp D...pi@c16eb70 cn.smart.hospital E No virtual method getModule()Ljava/lang/Module; in class Ljava/lang/Class; or its super classes (declaration of 'java.lang.Class' appears in /apex/com.android.art/javalib/core-oj.jar)
com.hjq.http.exception.HttpException: No virtual method getModule()Ljava/lang/Module; in class Ljava/lang/Class; or its super classes (declaration of 'java.lang.Class' appears in /apex/com.android.art/javalib/core-oj.jar)
at cn.smart.hospital.http.model.RequestHandler.requestFail(RequestHandler.java:155)
at com.hjq.http.callback.NormalCallback.onHttpFailure(NormalCallback.java:145)
at com.hjq.http.callback.BaseCallback.onResponse(BaseCallback.java:75)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:203)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)`
```
* 降低 GsonFactory:9.5版本 9.3,9.2报一样的错误,9.0就能正常使用
### 复现步骤【必填】
* 因为的项目没有办法升级到 EasyHttp demo 的最新 targetSdkVersion 31 的版本,直接跑 EasyHttp demo 是没有问题
apply plugin: 'com.android.application'
android { compileSdkVersion 28
defaultConfig {
versionName "1.0.5"
versionCode 105
targetSdkVersion 28
applicationId "cn.smart.hospital"
minSdkVersion 21
multiDexEnabled false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories { flatDir { dirs 'libs' } }
// 这个plugin需要放在android配置之后,因为需要读取android中的配置项 apply plugin: 'replugin-plugin-gradle'
repluginPluginConfig { appModule = ':app' pluginName = "cn.smart.hospital" // 内容为该插件包名 hostApplicationId = "com.huawei.smarthome.extend" hostAppLauncherActivity = "com.huawei.smarthome.login.LauncherActivity" }
dependencies { implementation "com.qihoo360.replugin:replugin-plugin-lib-androidx:2.3.4" implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0' provided files('libs/fragment.jar')//这个jar就是从Support-fragment中提取出来的并非特制包目的是为了骗过编译期 provided files('libs/common-utils-lib-1.0.0.jar')//这个jar就是从Host的utils中编译生成的,其目的是为了骗过编译期 implementation(name: 'plugin-library', ext: 'aar')//sample:compile aar // mqtt implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.2' implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1' // 网络请求框架:https://github.com/getActivity/EasyHttp implementation 'com.github.getActivity:EasyHttp:12.8' implementation 'com.squareup.okhttp3:okhttp:3.12.13' // Gson 解析容错:https://github.com/getActivity/GsonFactory implementation 'com.github.getActivity:GsonFactory:9.0' // Json 解析框架:https://github.com/google/gson implementation 'com.google.code.gson:gson:2.10.1' // Kotlin 反射库:用于反射 Kotlin data class 类对象 implementation 'org.jetbrains.kotlin:kotlin-reflect:1.5.10' //基础工具库 implementation 'com.github.tamsiree.RxTool:RxKit:2.6.3'
implementation 'io.github.jeremyliao:live-event-bus-x:1.8.0'
}
```java
public class DeviceTypeApi implements IRequestApi {
@NonNull
@Override
public String getApi() {
return "api/p-szkj-select-device-type";
}
private String sn;
public DeviceTypeApi setSn(String sn) {
this.sn = sn;
return this;
}
public final static class Bean {
private String sn; // 设备码
private int type; // 类型
private String no; // 编号
public String getSn() {
return sn;
}
public int getType() {
return type;
}
public String getNo() {
return no;
}
}
}
String sn = RxSPTool.getContent(RxTool.getContext(), Constant.KEY_DEVICE_SN_NAME);
EasyHttp.get(this)
.api(new DeviceTypeApi()
.setSn(sn))
.request(new HttpCallbackProxy<HttpData<DeviceTypeApi.Bean>>(this) {
@Override
public void onHttpSuccess(HttpData<DeviceTypeApi.Bean> result) {
RxToast.showToastShort("Get 请求成功,请看日志");
}
});
是否必现【必填】
是
项目 targetSdkVersion【必填】
28
出现问题的手机信息【必填】
Android12 虚拟机
出现问题的安卓版本【必填】
Android12
问题信息的来源渠道【必填】
自己遇到的
是部分机型还是所有机型都会出现【必答】
全部
框架最新的版本是否存在这个问题【必答】
是
框架文档是否提及了该问题【必答】
否
是否已经查阅框架文档但还未能解决的【必答】
是
issue 列表中是否有人曾提过类似的问题【必答】
否
是否已经搜索过了 issue 列表但还未能解决的【必答】
是
是否可以通过 Demo 来复现该问题【必答】
是
提供报错堆栈
No response
提供截图或视频
No response
提供解决方案
No response
小伙子,这个问题很可能是 Kotlin 版本有冲突了,看一下你的项目 kotlin 版本用的是多少,可以看一下项目根目录 build.gradle 文件的 org.jetbrains.kotlin:kotlin-gradle-plugin 这个插件版本号是多少。
然后将 implementation 'org.jetbrains.kotlin:kotlin-reflect:1.5.10' 依赖的版本号修改成你的项目 Kotlin 版本号再试试。
还是不行,原来项目中没有org.jetbrains.kotlin:kotlin-gradle-plugin 给他加了也是不行
buildscript { repositories { mavenLocal() jcenter() maven { url "https://maven.aliyun.com/repository/public" } maven { url "https://maven.aliyun.com/repository/google" } maven { url uri("D:\work\fyey\szkj\hw-android\pluginLib\maven") } } dependencies { classpath 'com.android.tools.build:gradle:3.5.4' classpath "com.qihoo360.replugin:replugin-plugin-gradle-androidx:2.3.4" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31" } }
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions'
android { compileSdkVersion 28
defaultConfig {
versionName "1.0.5"
versionCode 105
targetSdkVersion 28
applicationId "cn.smart.hospital"
minSdkVersion 21
multiDexEnabled false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories { flatDir { dirs 'libs' } }
// 这个plugin需要放在android配置之后,因为需要读取android中的配置项 apply plugin: 'replugin-plugin-gradle'
repluginPluginConfig { appModule = ':app' pluginName = "cn.smart.hospital" // 内容为该插件包名 hostApplicationId = "com.huawei.smarthome.extend" hostAppLauncherActivity = "com.huawei.smarthome.login.LauncherActivity" }
dependencies { implementation "com.qihoo360.replugin:replugin-plugin-lib-androidx:2.3.4" implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0' provided files('libs/fragment.jar')//这个jar就是从Support-fragment中提取出来的并非特制包目的是为了骗过编译期 provided files('libs/common-utils-lib-1.0.0.jar')//这个jar就是从Host的utils中编译生成的,其目的是为了骗过编译期 implementation(name: 'plugin-library', ext: 'aar')//sample:compile aar // mqtt implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.2' implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1' // 网络请求框架:https://github.com/getActivity/EasyHttp implementation 'com.github.getActivity:EasyHttp:12.8' implementation 'com.squareup.okhttp3:okhttp:3.12.13' // Gson 解析容错:https://github.com/getActivity/GsonFactory implementation 'com.github.getActivity:GsonFactory:9.5' // Json 解析框架:https://github.com/google/gson implementation 'com.google.code.gson:gson:2.10.1' // Kotlin 反射库:用于反射 Kotlin data class 类对象 implementation 'org.jetbrains.kotlin:kotlin-reflect:1.5.10' //基础工具库 implementation 'com.github.tamsiree.RxTool:RxKit:2.6.3'
implementation 'io.github.jeremyliao:live-event-bus-x:1.8.0'
} ` apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions'
android { compileSdkVersion 28
defaultConfig {
versionName "1.0.5"
versionCode 105
targetSdkVersion 28
applicationId "cn.smart.hospital"
minSdkVersion 21
multiDexEnabled false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories { flatDir { dirs 'libs' } }
// 这个plugin需要放在android配置之后,因为需要读取android中的配置项 apply plugin: 'replugin-plugin-gradle'
repluginPluginConfig { appModule = ':app' pluginName = "cn.smart.hospital" // 内容为该插件包名 hostApplicationId = "com.huawei.smarthome.extend" hostAppLauncherActivity = "com.huawei.smarthome.login.LauncherActivity" }
dependencies { implementation "com.qihoo360.replugin:replugin-plugin-lib-androidx:2.3.4" implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0' provided files('libs/fragment.jar')//这个jar就是从Support-fragment中提取出来的并非特制包目的是为了骗过编译期 provided files('libs/common-utils-lib-1.0.0.jar')//这个jar就是从Host的utils中编译生成的,其目的是为了骗过编译期 implementation(name: 'plugin-library', ext: 'aar')//sample:compile aar // mqtt implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.2' implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1' // 网络请求框架:https://github.com/getActivity/EasyHttp implementation 'com.github.getActivity:EasyHttp:12.8' implementation 'com.squareup.okhttp3:okhttp:3.12.13' // Gson 解析容错:https://github.com/getActivity/GsonFactory implementation 'com.github.getActivity:GsonFactory:9.5' // Json 解析框架:https://github.com/google/gson implementation 'com.google.code.gson:gson:2.10.1' // Kotlin 反射库:用于反射 Kotlin data class 类对象 implementation 'org.jetbrains.kotlin:kotlin-reflect:1.3.72' //基础工具库 implementation 'com.github.tamsiree.RxTool:RxKit:2.6.3'
implementation 'io.github.jeremyliao:live-event-bus-x:1.8.0'
}
@SilasDong 小伙子,我无法复现你说的这个问题,请提供一个可供复现的 Demo 工程给我。
超过一个月没有响应,自动关闭此 issue。