Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Studio: Integrating Butterknife?

I am trying to implement Butterknife into my android studio project.

However when I do so I get an error on @InjectView "cannot resolve symbol InjectView".

Have I not implemented Butterknife sucsessfully?

Activity code:

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);



    }
}

layout:

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

gradle file:

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'
}
like image 421
android99999 Avatar asked Jan 25 '15 16:01

android99999


People also ask

Is ButterKnife deprecated?

We decided to update our Android Getting Started Guide Sample App because ButterKnife has been deprecated. As new developers onboard to the Android Communications SDK, it's important for our sample apps to be using the latest Android practices that others would use in their own projects.

What is ButterKnife dependency injection?

It's a design pattern in Android that allows writing codes for low coupling and also makes it possible to change them any time.


1 Answers

Note that in the latest versions of the ButterKnife library, the @InjectView() annotation is no longer used.

In stead @Bind(R.id.tvHelloWorld) and ButterKnife.bind(this); are used.

Reference: http://jakewharton.github.io/butterknife/

like image 168
RWIL Avatar answered Oct 23 '22 03:10

RWIL