Uso de la biblioteca de Butter Knife para ver la inyección

Que estoy haciendo

  1. Estoy tratando de ejecutar la biblioteca cuchillo de mantequilla para mi proyecto simple
  2. He seguido todos los pasos de la documentación, pero todavía estoy recibiendo errores de registro
  3. ¿Cómo puedo resolver esto, estoy perdiendo cualquier paso
  4. También he añadido el tarro en la carpeta libs

MainActivity.java

package com.example.butterknife; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import butterknife.ButterKnife; import butterknife.InjectView; public class MainActivity extends Activity { @InjectView(R.id.txtID) TextView title; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.inject(this); title.setText("Hello Everyone !!"); } } 

Registro

 04-15 11:50:57.845: E/AndroidRuntime(913): FATAL EXCEPTION: main 04-15 11:50:57.845: E/AndroidRuntime(913): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.butterknife/com.example.butterknife.MainActivity}: java.lang.NullPointerException 04-15 11:50:57.845: E/AndroidRuntime(913): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955) 04-15 11:50:57.845: E/AndroidRuntime(913): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980) 04-15 11:50:57.845: E/AndroidRuntime(913): at android.app.ActivityThread.access$600(ActivityThread.java:122) 04-15 11:50:57.845: E/AndroidRuntime(913): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146) 04-15 11:50:57.845: E/AndroidRuntime(913): at android.os.Handler.dispatchMessage(Handler.java:99) 04-15 11:50:57.845: E/AndroidRuntime(913): at android.os.Looper.loop(Looper.java:137) 04-15 11:50:57.845: E/AndroidRuntime(913): at android.app.ActivityThread.main(ActivityThread.java:4340) 04-15 11:50:57.845: E/AndroidRuntime(913): at java.lang.reflect.Method.invokeNative(Native Method) 04-15 11:50:57.845: E/AndroidRuntime(913): at java.lang.reflect.Method.invoke(Method.java:511) 04-15 11:50:57.845: E/AndroidRuntime(913): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 04-15 11:50:57.845: E/AndroidRuntime(913): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 04-15 11:50:57.845: E/AndroidRuntime(913): at dalvik.system.NativeStart.main(Native Method) 04-15 11:50:57.845: E/AndroidRuntime(913): Caused by: java.lang.NullPointerException 04-15 11:50:57.845: E/AndroidRuntime(913): at com.example.butterknife.MainActivity.onCreate(MainActivity.java:19) 04-15 11:50:57.845: E/AndroidRuntime(913): at android.app.Activity.performCreate(Activity.java:4465) 04-15 11:50:57.845: E/AndroidRuntime(913): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 04-15 11:50:57.845: E/AndroidRuntime(913): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919) 04-15 11:50:57.845: E/AndroidRuntime(913): ... 11 more 04-15 11:51:06.722: I/Process(913): Sending signal. PID: 913 SIG: 9 

Siga estos pasos [en Eclipse IDE]:

1) Haga clic derecho en su proyecto conEn Package Explorer. Got to Java Compiler -> Annotation Processing y marque la Enable project specific settings .

2) Amplíe la sección Annotation Processing y seleccione Factory Path . Marque Enable project specific settings y, a continuación, haga clic en Add JARs Vaya a la librería / carpeta del proyecto y seleccione el tarro ButterKnife .

3) Haga clic en Ok para guardar la nueva configuración. Eclipse le pedirá que reconstruya su proyecto al que debe hacer clic en Yes .

Nota: Asegúrese de que la carpeta .apt_generated/ está en la raíz del proyecto. Debe contener archivos como YOURACTIVITY$$ViewInjector.java . Si estos archivos no están presentes desencadenar una construcción limpia por Proyecto seleccionado → Limpiar. Esta carpeta y los archivos no se deben comprobar en el control de revisión.

Referencia -> Configurar la configuración manual de las anotaciones de ButterKnife

IntelliJ IDEA – Si su proyecto utiliza una configuración externa (como un Maven pom.xml), el proceso de anotación debería funcionar.

Sigue estos pasos :

  1. Abra la preferencia de IDEA: File -> Other Settings -> Default Settings
  2. Navegue hasta Compiler -> Annotation Processors A continuación, marque Enable annotation processing

Referencia -> Configurar la configuración manual de las anotaciones de ButterKnife

Actualización 30-6-2015

Siga estos pasos para Intellij IDEA 14.0:

  1. Abra la preferencia de IDEA: File -> Settings o haga clic en ctl + alt + s

  2. Navegue hasta Build, Execution and deployment -> Compiler -> Annotation Processors y elija su proyecto A continuación, marque Enable annotation processing

@Bind reemplaza @InjectView y @InjectViews. ButterKnife.bind y ButterKnife.unbind sustituyen ButterKnife.inject y ButterKnife.reset, respectivamente.

Mira esto: @InjectView reemplazado …

  • Cuchillo de mantequilla - No se puede vincular vistas de fragmento
  • Android: ¿Por qué necesitamos usar R2 en lugar de R con butterknife?
  • Butterknife enlaza SearchView desde el menú
  • Uso de múltiples etiquetas <include /> en el diseño con ButterKnife
  • Diferencia entre bind e injectionView en butterknife
  • Butterknife - inyecciones múltiples
  • Error al usuario ButterKnife en Android Studio y Android 5.0
  • Android Butterknife - enlazado en fragmento
  • ¿Por qué Butterknife no puede encontrar un ViewHolder dentro de una clase anónima?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.