java.lang.IllegalStateException: 充气机已关闭
java.lang.IllegalStateException: Inflater has been closed
我正在使用 okhttp
进行 http get 请求。我必须检索 url 的正文并将其用作 string
用于 TextView
我的代码-
new Thread(new Runnable() {
@Override
public void run() {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(myURL)
.build();
try {
try (final Response response = client.newCall(request).execute()) {
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
t.setText(response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
启动后 activity 应用崩溃
错误-
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.vedang.sadhguru, PID: 8677
java.lang.IllegalStateException: Inflater has been closed
at java.util.zip.Inflater.ensureOpen(Inflater.java:397)
at java.util.zip.Inflater.inflate(Inflater.java:258)
at okio.InflaterSource.readOrInflate(InflaterSource.kt:79)
at okio.InflaterSource.read(InflaterSource.kt:49)
at okio.GzipSource.read(GzipSource.kt:69)
at okio.Buffer.writeAll(Buffer.kt:1642)
at okio.RealBufferedSource.readString(RealBufferedSource.kt:95)
at okhttp3.ResponseBody.string(ResponseBody.kt:187)
at com.vedang.sadhguru.VideoList.run(VideoList.java:48)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
我已经解决了
new Thread(new Runnable() {
@Override
public void run() {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(myURL)
.build();
try {
try (final Response response = client.newCall(request).execute()) {
ChangeText(response.body().string());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
public void ChangeText(final String text) {
runOnUiThread(new Runnable() {
@Override
public void run() {
t.setText(text);
}
});
}
在 ui 线程
上创建了 ChangeText
void 和 运行
我正在使用 okhttp
进行 http get 请求。我必须检索 url 的正文并将其用作 string
用于 TextView
我的代码-
new Thread(new Runnable() {
@Override
public void run() {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(myURL)
.build();
try {
try (final Response response = client.newCall(request).execute()) {
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
t.setText(response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
启动后 activity 应用崩溃
错误-
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.vedang.sadhguru, PID: 8677
java.lang.IllegalStateException: Inflater has been closed
at java.util.zip.Inflater.ensureOpen(Inflater.java:397)
at java.util.zip.Inflater.inflate(Inflater.java:258)
at okio.InflaterSource.readOrInflate(InflaterSource.kt:79)
at okio.InflaterSource.read(InflaterSource.kt:49)
at okio.GzipSource.read(GzipSource.kt:69)
at okio.Buffer.writeAll(Buffer.kt:1642)
at okio.RealBufferedSource.readString(RealBufferedSource.kt:95)
at okhttp3.ResponseBody.string(ResponseBody.kt:187)
at com.vedang.sadhguru.VideoList.run(VideoList.java:48)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
我已经解决了
new Thread(new Runnable() {
@Override
public void run() {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(myURL)
.build();
try {
try (final Response response = client.newCall(request).execute()) {
ChangeText(response.body().string());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
public void ChangeText(final String text) {
runOnUiThread(new Runnable() {
@Override
public void run() {
t.setText(text);
}
});
}
在 ui 线程
上创建了ChangeText
void 和 运行