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".

  • Existe-t-il un moyen d'ajouter des rappels à un nouvel événement de calendrier à l'aide d'Intents?
  • Comment changer le texte de l'onglet Android à la volée?
  • Comment réduire une taille de fichier Image avant de télécharger sur un serveur
  • SimpleDateFormat (modèle de chaîne, localisation locale) avec par exemple Locale.US pour les dates ASCII
  • Android: Intent.ACTION_SEND avec EXTRA_STREAM n'attache aucune image lors du choix de l'application Gmail sur htc Hero
  • Impossible de créer un répertoire dans un stockage externe bien que les autorisations soient apparemment définies correctement
  • 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' } 

  • "Action complète en utilisant" lors de la tentative de chargement dans une vue Web
  • Android Studio: Importation de projet dans un projet existant
  • Marge à l'intérieur des boutons
  • Changer la couleur de l'élément listview sélectionné
  • Android - android.os.NetworkOnMainThreadException
  • Conserver l'état du fragment entre les activités
  • 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.