exception在接收到回调后执行ui动作时我得到了这个OkHttp.
致命异常:OkHttp Dispatcher进程:org.example.verificationserviceexample,PID:20421 android.util.AndroidRuntimeException:动画师只能在android.animation的android.animation.ValueAnimator.cancel(ValueAnimator.java:1020)的Looper线程上运行. AnimatorSet.cancel(AnimatorSet.java:366)在android.graphics.drawable.RippleComponent.cancelSoftwareAnimations(RippleComponent.java:214)在android.graphics.drawable.RippleComponent.cancel(RippleComponent.java:133)在android.graphics.drawable .RippleComponent.enter(RippleComponent.java:100)在android.graphics.drawable.RippleDrawable.tryBackgroundEnter(RippleDrawable.java:552)在android.graphics.drawable.RippleDrawable.setBackgroundActive(RippleDrawable.java:290)在android.graphics.在Android.widget.TextView的android.view.View.drawableStateChanged(View.java:18046)的android.graphics.drawable.Drawable.setState(Drawable.java:735)中的drawable.RippleDrawable.onStateChange(RippleDrawable.java:270) .drawableStateChanged(TextView.j ava:4090)位于android.view.View.setEnabled(View.java)的android.view.View.refreshDrawableState(View.java:18115)的android.support.v7.widget.AppCompatButton.drawableStateChanged(AppCompatButton.java:155) :8135)在android.widget.TextView.setEnabled(TextView.java:1609)在org.example.verificationserviceexample.MainActivity.renderButtons(MainActivity.java:146)在org.example.verificationserviceexample.MainActivity.onAudioStateChanged(MainActivity.java: 170)在com.bssys.spitchmobilesdk.audio.SpitchAudioManager.publishAudioStateChange(SpitchAudioManager.java:123)在com.bssys.spitchmobilesdk.audio.SpitchAudioManager.stopAudio(SpitchAudioManager.java:83)在com.bssys.spitchmobilesdk.VerificationService.stopAudio (VerificationService.java:96)位于org.example的org.example.verificationserviceexample.MainActivity.lambda $ null $ 0 $ MainActivity(MainActivity.java:60)的com.bssys.spitchmobilesdk.VerificationService.stopEnrollment(VerificationService.java:57) .verificationserviceexample.MainActivity $$林 BDA $ 3.onSpitchResult(来源不明)在com.bssys.spitchmobilesdk.VerificationService $ 1.onFailure(VerificationService.java:111)在okhttp3.RealCall $ AsyncCall.execute(RealCall.java:161)在okhttp3.internal.NamedRunnable.run( NamedRunnable.java:32)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:607)在java.lang.Thread.run (Thread.java:761)
这是我正在使用的代码:
public void addVoicePrintFromSource(Pipe source, SpitchConfig config, @NonNull String speakerId, Callback callback){
RequestBody requestBody = new RequestBody() {
@Override
public MediaType contentType() {
return MediaType.parse("audio/x-pcm; rate="+config.getRate());
}
@Override
public void writeTo(BufferedSink sink) throws IOException {
sink.writeAll(source.source());
}
};
Request request = new Request.Builder()
.url(config.getServerURL())
.addHeader("Accept","*/*")
.addHeader("Connection","Keep-Alive")
.post(requestBody)
.build();
okHttpClient.newCall(request).enqueue(callback);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用OkIo Pipe来为RequestBody填充音频数据
提前致谢!
不要更改其他线程的视图状态,包括OKHTTP回调.如果需要,请在runOnUiThread块上执行此操作.通过调用setEnabled,您将导致调用无法在该线程上运行的各种UI函数.
| 归档时间: |
|
| 查看次数: |
7818 次 |
| 最近记录: |