studio android nullpointerexception butterknife

android - studio - ButterKnife 8.0.1 no funciona



butterknife android (10)

Añadir annotationProcessor ''com.jakewharton:butterknife-compiler:8.6.0'' En su archivo gradle funcionó para mí

Estoy usando butterknife 8.0.1 , pero nullpointerexception una nullpointerexception .

Esta línea está en mi archivo build.grade: compile ''com.jakewharton:butterknife:8.0.1''

Esta es mi Main Class: (escribí el incluye correctamente)

import butterknife.BindView; import butterknife.ButterKnife; public class MainActivity extends BaseActivity { @BindView(R.id.MainScreenTextView) TextView mainText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); **mainText.setText("Butter knife is working fine");** }

y esto es MainActivity.xml :

<android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> </android.support.design.widget.AppBarLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:orientation="vertical"> <TextView android:id="@+id/MainScreenTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="This is the Main Screen" android:textColor="#000000" android:background="#666666" android:padding="5dp" android:textSize="20dp"/> </LinearLayout> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_dialog_email" />


Acabo de enfrentar este problema, después de actualizar mi proyecto a Gradle versión 3.0.1 . Pude solucionarlo simplemente incluyendo en el archivo de la app Gradle la línea:

annotationProcessor ''com.jakewharton:butterknife-compiler:8.8.1''

El resultado final fue:

dependencies { compile fileTree(include: [''*.jar''], dir: ''libs'') androidTestCompile(''com.android.support.test.espresso:espresso-core:2.2.2'', { exclude group: ''com.android.support'', module: ''support-annotations'' }) ... compile ''com.jakewharton:butterknife:8.8.1'' annotationProcessor ''com.jakewharton:butterknife-compiler:8.8.1'' }

Espero que esto ayude a alguien, aunque esta pregunta sea antigua.


Configure Butterknife en el archivo build.gradle como este,

compile("com.jakewharton:butterknife:8.5.1") annotationProcessor "com.jakewharton:butterknife-compiler:8.5.1"

Esto funciona para mi.


De JakeWharton

Sí, ese complemento ya no es necesario. Ya está utilizando AnnotationProcessor para el artefacto ''compilador de navajas de mantequilla'' que está integrado en el complemento Android Gradle.

Entonces la solución es eliminar apt classpath ''com.neenbedankt.gradle.plugins: android-apt: 1.8''


Según el archivo Léame , debe incluir el butterknife-compiler para que el código generado se produzca automáticamente:

buildscript { repositories { mavenCentral() } dependencies { classpath ''com.neenbedankt.gradle.plugins:android-apt:1.8'' } } apply plugin: ''com.neenbedankt.android-apt'' dependencies { compile ''com.jakewharton:butterknife:8.0.1'' apt ''com.jakewharton:butterknife-compiler:8.0.1'' }

Sin esto, no hay código generado para cargar y, por lo tanto, ninguno de los campos se configura.

Puede verificar que ButterKnife está funcionando llamando a ButterKnife.setDebug(true) y buscando en Logcat.


Si usa kotlin:

asegúrese de usar esta dependencia en la aplicación del módulo:

dependencies { implementation ''com.jakewharton:butterknife:10.0.0'' kapt ''com.jakewharton:butterknife-compiler:10.0.0'' }


También tuve este problema, solo porque agregué butterknife de la administración de dependencias de Android Studio y no copiando y pegando líneas gradle del sitio web de Butterknife. Así que tuve que agregar compile ''com.jakewharton:butterknife:8.5.1'' annotationProcessor ''com.jakewharton:butterknife-compiler:8.5.1'' lugar de simplemente compile ''com.jakewharton:butterknife:8.5.1''


Usé esta biblioteca en Fragment y tiene NPE. Mi código fue:

ButterKnife.bind(view);

Pero estuvo mal. La biblioteca necesita conocer dos objetos:
1) Objetivo: con anotaciones @BindView
2) Fuente - con vistas

Será correcto escribir:

ButterKnife.bind(this, view);

Cuando esto, su fragmento y vista, vea este fragmento.


para mí el problema era que estaba usando

annotationProcessor ''com.jakewharton:butterknife-compiler:8.7.0''

en vez de

apt ''com.jakewharton:butterknife-compiler:8.7.0


App Level(build.gradle) apply plugin: ''android-apt'' dependencies { compile fileTree(include: [''*.jar''], dir: ''libs'') compile ''com.android.support:appcompat-v7:24.2.1'' testCompile ''junit:junit:4.12'' compile ''com.jakewharton:butterknife:8.4.0'' apt ''com.jakewharton:butterknife-compiler:8.4.0'' } Project Level(build.gradle) buildscript { repositories { jcenter() } dependencies { classpath ''com.neenbedankt.gradle.plugins:android-apt:1.8'' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } }