OkHttp
에서 콜백을받은 후 UI 작업을 수행 할 때이 값이 exception
이됩니다.콜백 후 OkHttp Dispatcher에서 치명적인 예외를 피하는 방법
치명적인 예외 : OkHttp 디스패처 프로세스 : org.example.verificationserviceexample, PID : 20421이 android.util.AndroidRuntimeException : 애니메이터는 루퍼에서 실행 할 수는 ValueAnimator (android.animation.ValueAnimator.cancel에서 스레드. 자바 : 1020) android.animation.AnimatorSet.cancel (AnimatorSet.java:366) 에서 android.graphics.drawable.RippleComponent.cancelSoftwareAnimations에서 android.graphics.drawable.RippleComponent.cancel에서 (RippleComponent.java:214) (RippleComponent.java:133) android.graphics.drawable.RippleComponent.enter (RippleComponent.java:100) android.graphics.drawable.RippleDrawable.tryBackgroundEnter (0126) 자바 : android.graphics.drawable.RippleDrawable.onStateChange (RippleDrawable.java:270에서 290) ) android.graphics.drawable.Drawable.setState (Drawable.java:735에서 ) android.view.View.drawableStateChanged에서 (View.java:18046) android.support.v7.widget.AppCompatButto의 에있는 android.widget.TextView.drawableStateChanged (TextView.java:4090) n.drawableStateChanged (AppCompatButton.java:155) android.view.View.refreshDrawableState (View.java:18115)에서 android.view.View.setEnabled (View.java:8135)에서 android.widget.TextView에서 . org.example.verificationserviceexample.MainActivity.renderButtons (MainActivity.java:146) com.bssys에서 org.example.verificationserviceexample.MainActivity.onAudioStateChanged (MainActivity.java:170)에서 에서 (TextView.java:1609) 는 setEnabled. spitchmobilesdk.audio.SpitchAudioManager.publishAudioStateChange (SpitchAudioManager.java:123) at com.bssys.spitchmobilesdk.audio.SpitchAudioManager.stopAudio (SpitchAudioManager.java:83)org.example.verificationserviceexample.MainActivity.lambda $ 널 (null) $ 0 com.bssys.spitchmobilesdk.VerificationService.stopEnrollment (VerificationService.java:57) 에서 com.bssys.spitchmobilesdk.VerificationService.stopAudio (VerificationService.java:96) 에서okhttp3에서 com.bssys.spitchmobilesdk.VerificationService $ 1.onFailure에서 org.example.verificationserviceexample.MainActivity $$ 람다 $ 3.onSpitchResult (알 소스) (VerificationService.java:111) 에서 $ MainActivity (MainActivity.java:60) .RealCall $ AsyncCall.execute (RealCall.java:161) at 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.자바 : 사전에 오디오 데이터와
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); }
내가 RequestBody을 채우기 위해 OkIo 파이프를 사용하고
감사 : 761)
는 그리고 이것은 내가 사용하는 코드입니다!
당신이 완전 하군! 나는 그 문제에 집착하고 OkHttp가 자바 라이브러리이고 안드로이드 라이브러리가 아니라는 것을 완전히 잊어 버렸다. 당신의 도움을 주셔서 감사합니다!! – miibpa