Android Studio: Intégrer Butterknife?

J'essaie d'implémenter Butterknife dans mon projet de studio Android.

Cependant, lorsque je le fais, j'ai une erreur sur @InjectView "ne peut pas résoudre le symbole InjectView".

  • Impossible de modifier la visibilité d'un ImageView
  • Comment convertir un LatLng et un rayon en LatLngBounds dans Android Google Maps API v2?
  • Une erreur dans le programme NDAK de Android ne peut pas trouver
  • Android compare la signature du package actuel avec debug.keystore
  • Android: Comment puis-je mettre ma notification sur la zone de notification?
  • Comment définir des images pour ScrollView à la place - des bords de décoloration?
  • N'ai-je pas mis en place Butterknife sans succès?

    Code d'activité:

     package com.example.rodf.testapp; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends ActionBarActivity { @InjectView(R.id.tvHelloWorld) TextView tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } 

    disposition:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:id="@+id/tvHelloWorld" android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> 

    Fichier gradle:

     apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.example.rodf.testapp" minSdkVersion 15 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' //adding the butter knife library compile 'com.jakewharton:butterknife:6.0.0' } 

  • "SetSupportActionBar (barre d'outils)" dans FragmentActivity?
  • Création d'un rectangle avec seulement deux bords arrondis
  • Comment déterminer le code C est compilé pour Android / NDK ou iOS
  • Bundle de passe Android avec recherche
  • ItemTouchHelper fait l'objet glissé passer le pied de page du fragment
  • Y a-t-il une raison de ne pas appeler setIntent en annulant onNewIntent?
  • 7 Solutions collect form web for “Android Studio: Intégrer Butterknife?”

    Je pense que votre code est bon,

    1. Essayez de synchroniser votre gradle en cliquant Entrez la description de l'image ici

    2. Essayez d'aller Fileinvalidate Caches et redémarrez votre studio Android.

    Aussi, n'oubliez pas de mettre ButterKnife.inject(this); onCreate()

    Notez que dans les dernières versions de la bibliothèque ButterKnife, l'annotation @InjectView() n'est plus utilisée.

    À la place @Bind(R.id.tvHelloWorld) et ButterKnife.bind(this); sont utilisés.

    Référence: http://jakewharton.github.io/butterknife/

    Configurer la configuration manuelle pour ButterKnife à partir de ce lien

    Fichier -> Autres paramètres -> Paramètres par défaut

    Compilateur -> Annotation Processors -> Vérifier Activer le traitement de l'annotation

    Donc ButterKnife vient d'être mis à jour avec la version 8.5.1

    Pour l'utiliser,

    Ajouter ci-dessous la ligne dans build.gradle niveau du build.gradle :

     classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1' 

    Ajouter des lignes ci-dessous à l'intérieur du niveau d'application build.gradle :

     // Field and method binding for Android views compile 'com.jakewharton:butterknife:8.5.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' 

    Appliquer le plugin butterknife comme suit:

     apply plugin: 'com.jakewharton.butterknife' 

    Un petit changement de syntaxe à la précédente version ButterKnife est que, maintenant, vous devez utiliser R2 au lieu de R tout en utilisant les annotations ButterKnfe.

    Pour être précis:

    Au lieu d'écrire

     @BindView(R.id.textView) TextView mTextView; 

    Nous écrirons

     @BindView(R2.id.textView) TextView mTextView; 

    Puis construisez simplement le projet.

    Déplacez la déclaration TextView tv1 dans votre classe. Appelez également l'objet ButterKnife.inject (this); méthode.

     import butterknife.ButterKnife; import butterknife.InjectView; public class MainActivity extends ActionBarActivity { @InjectView(R.id.tvHelloWorld) TextView tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.inject(this); } } 

    Dans les dernières versions de la bibliothèque ButterKnife (8.5.1), l'annotation @InjectView() n'est pas utilisée.

    Vous pouvez utiliser @BindView(Component) au lieu de @InjectView (Component) et au lieu d'utiliser Butterknife.inject(this) utilisez ButterKnife.bind(this)

    J'ai essayé toutes les réponses, mais rien ne fonctionne pour moi parce que dans la bibliothèque, ils ont changé quelque chose. Insépendant de @InjectView, essayez @Bind. Ça va bien

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.