2017-12-04 8 views
0

내 코드에 이상한 문제가있어 상황을 설명 할 수 없습니다. 마쉬멜로우에 충돌하고 있지만 누가를 더 이상하게 만드는 것은 아닙니다.IncompatibleClassChangeError : 'java.lang.VirtualMachineError'클래스가 'java.lang.CharSequence'인터페이스를 구현하지 않습니다.

오류가 발생한 행을 가리킬 수 있지만 오류 자체는 분명하지 않습니다. 나는 무엇이 충돌하고 그것을 막을 지 잘 모릅니다. 세부 사항은 다음과 같습니다.

서버에 대한 호출을 시도 할 때 충돌이 발생합니다. 이렇게하려면 RetrofitRxJava과 함께 사용하고 Kotlin에서이 작업을 수행합니다.

fun login(username: String, password: String, callback: Login.OnLoginListener) { 
    RestClient.getInstance().service 
    .loginUser(//<- This line is crashing for no apparent reason 
      Utils.RequestBodyParser.parseString(username), 
      Utils.RequestBodyParser.parseString(password) 
    ) 
    .subscribeOn(Schedulers.io()) 
    .observeOn(AndroidSchedulers.mainThread()) 
    .subscribe(
     { success -> 
      (
      if (success.status) 
       callback.onLoginSuccess() 
      else 
       callback.onLoginError() 
      ) 
     }, 
     { error -> 
      GenericErrorHandler.handleError(error, callback.retrieveContext()) 
     } 
    ) 
} 

여기에 로그 캣 출력입니다 : 여기 내 코드는

java.lang.IncompatibleClassChangeError: Class 'java.lang.VirtualMachineError' does not implement interface 'java.lang.CharSequence' in call to 'java.lang.String java.lang.CharSequence.toString()' (declaration of 'java.lang.Throwable' appears in /system/framework/core-libart.jar) 
    at fi.hohtolabs.kuuratablet.network.WebController$Companion.login(WebController.kt:19) 
    at fi.hohtolabs.kuuratablet.presenter.LoginPresenter.login(LoginPresenter.kt:31) 
    at fi.hohtolabs.kuuratablet.dialog.LoginDialog.lambda$onResume$2$LoginDialog(LoginDialog.java:74) 
    at fi.hohtolabs.kuuratablet.dialog.LoginDialog$$Lambda$2.onClick(Unknown Source) 
    at android.view.View.performClick(View.java:5198) 
    at android.view.View$PerformClick.run(View.java:21147) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

아무도 내가 무엇을해야하는지에 대한 어떤 제안이 있습니까은? (청소, 재구성, 캐시 재시작 및 무효화, .gradle 폴더 삭제 및 그 밖의 모든 것들을 시도했습니다. 아무런 도움이되지 않습니다.)

답변

0

이 문제는 Marshmellow 장치에서만 발생했으며 이후에는 다른 것으로 나타났습니다. 나중에 나는 ArrayIndexOutOfBoundsException을 얻었고 결국 문제가 무엇인지 알게되었습니다.

문제는 내 라이브러리 64K 방법보다라고했고 Instant Run가 있었기 때문에, 거기에 더 오류가 없었으며 전체 응용 프로그램이 잘 컴파일되지 않았다.