2017-09-08 13 views
1

8.8.1 NullPointerException이 : 언급 here안드로이드 - 버터 나이프 내가 butterknife 사용하고

내 프로젝트 레벨 Gradle을 같이 8.8.1은

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1' 
     ... 

    } 
} 
apply plugin: 'com.jakewharton.butterknife' 

모듈 레벨이 같은 Gradle을 아래처럼 아래

apply plugin: 'com.android.library' 
apply plugin: 'com.jakewharton.butterknife' 
dependencies { 
    ...  
    compile 'com.jakewharton:butterknife:8.8.1' 
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' 
} 

활동 파일은 아래 그림과 같습니다.

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.details); 
    ButterKnife.bind(this); 
    ButterKnife.setDebug(true); 
} 
,210

XML 파일은 리소스 ID를 R2.java res idresId not binding with view 이미지를 생성지고 컴파일 R2.java 파일 후

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/device_info_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/sensor_settings_background"> 

    .... 
    <RelativeLayout 
     android:id="@+id/container_buttons" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_marginLeft="8dp" 
     android:layout_marginRight="8dp" 
     android:background="@color/settings_background"> 

     <Button 
      android:id="@+id/connect_button" 
      android:layout_width="wrap_content" 
      android:layout_height="36dp" 
      android:layout_alignParentLeft="true" 
      android:background="@drawable/selector" 
      android:text="@string/connect" 
      android:textColor="@color/red" 
      android:textStyle="italic" /> 

     <Button 
      android:id="@+id/register_button" 
      android:layout_width="wrap_content" 
      android:layout_height="36dp" 
      android:layout_gravity="center_horizontal" 
      android:layout_marginTop="4dp" 
      android:text="@string/register" 
      android:visibility="gone" /> 

     <Button 
      android:id="@+id/unregister_button" 
      android:layout_width="wrap_content" 
      android:layout_height="36dp" 
      android:layout_alignParentRight="true" 
      android:background="@drawable/selector" 
      android:text="@string/unregister" 
      android:textColor="@color/red" 
      android:textStyle="italic" 
      android:visibility="gone" 
      tools:visibility="visible" /> 
    </RelativeLayout> 
</RelativeLayout> 

이하 같다.

나는 어떤 사람이 나를 내가 잘못 여기서 뭐하는 거지 이해하는 데 도움이 NullPointerException이에게

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setClickable(boolean)' on a null object reference 

을 얻고있다.

+2

R2? R.id가 아닌 이유는 무엇인가? http://jakewharton.github.io/butterknife/ –

+0

최신 lib 8.8.1에서이 행을 읽으십시오 * 이제 모든 버터 나이프 주석 안에 R 대신 R2를 사용하십시오. 또한 R.id를 허용하지 않습니다 https : //github.com/JakeWharton/butterknife – prGD

+2

R2는 도서관 프로젝트 용입니다. 도서관 프로젝트가있는 경우 : xml 레이아웃을 질문에 추가하십시오. 그렇지 않으면 R.id.xx – Frank

답변

0

같은 문제가 발생합니다. 버튼이 AppCompatButton으로 변경되었습니다. 해결 된 문제.

<android.support.v7.widget.AppCompatButton 
    android:id="@+id/connect_button" 
    android:layout_width="wrap_content" 
    android:layout_height="36dp" 
    android:layout_alignParentLeft="true" 
    android:background="@drawable/selector" 
    android:text="@string/connect" 
    android:textColor="@color/red" 
    android:textStyle="italic" /> 
+0

변경 한 코드를 표시하십시오. –