3

Android 프로젝트에 Android Studio를 사용하고 있습니다. 나는이 같은 이상한 스택 트레이스와 충돌을 구축하는 문제에 직면"오류 :보기 바인더를 생성 할 수 없습니다. java.lang.NullPointerException"

Error:Execution failed for task ':app:compileDevDebugJavaWithJavac'. 
java.lang.RuntimeException: failure, see logs for details. 
    cannot generate view binders java.lang.NullPointerException 
    at android.databinding.tool.reflection.ModelMethod.isBoxingConversion(ModelMethod.java:155) 
    at android.databinding.tool.store.SetterStore.isBetterParameter(SetterStore.java:946) 
    at android.databinding.tool.store.SetterStore.getBestSetter(SetterStore.java:838) 

를 데이터 바인딩이 전체 파손되었다 듯했다.

패키지 사이에서 리팩터링을하고 클래스를 이동했습니다.

+0

내가 같은 문제에서 실행하고 있습니다. 내 경우에는 내부 클래스가 있기 때문이라고 생각하지만, 확실하지 않습니다. 나는 몇 가지 변화를 만들었지 만 로그에서 무슨 일이 일어나고 있는지 전혀 모른다. – Chisko

답변

14

필자는 패키지 사이에서 클래스의 이름을 바꾸거나 이동할 때 필자는 Android Studio를 사용했습니다. 그러나 type 속성이 variable 인 리팩토링 클래스에 대한 참조가 data 인 레이아웃 XML을 수정하지 않았습니다.

따라서 이전 유형의 값이 기존 파일이 아닌 것으로 지정되어 빌드가 손상되었습니다.

단순한 실수이지만 소스를 찾는 데 더 많은 시간이 걸릴 수 있습니다. 희망이 사람을 도울 것입니다.

+0

이것은. 나는 이것 때문에 거의 1 시간을 낭비했다. Android Studio에서 데이터 바인딩 문제에 대한 실제 오류가 표시되기를 바랍니다. – muthuraj

-4

아마도 $ JAVA_HOME이 설정되지 않았습니다. 그것은

1

을 확인 getter 함수는 XML 파일에서 참조하는 모든 예를 들어가 정의되지 않았거나 getter 함수가 공공 액세스 지정이 없을 수 있습니다. 나는이 (안드로이드 스튜디오 경고하지 않습니다 아무것도)과 같은 변수를 정의 할 때

0

나는이 문제에 직면

<data> 
    <variable 
     name="onGlobalLayoutA" 
     type="ViewTreeObserver.OnGlobalLayoutListener"/> 

    <import type="android.view.ViewTreeObserver"/> 
</data> 

그리고 나는이 사람을 도움이 될

<data> 
    <variable 
     name="onGlobalLayoutA" 
     type="android.view.ViewTreeObserver.OnGlobalLayoutListener"/> 
</data> 

희망하여 해결 .

0

코드를 리팩터링하고 레이아웃의 이름을 변경했습니다. 안드로이드 Databinding은 그것을 싫어하는 것처럼 보입니다. 나는 똑같은 오류가있다. 안드로이드 스튜디오에서

시도 File -> Inalidate Caches/Restart