Question

What i am doing::

  1. I am trying to run butter knife library for my simple project
  2. I have followed all the steps in documentation, but still i am getting log errors
  3. How can i resolve this, am i missing any step
  4. I have also added the jar in libs folder

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

    }
}

Log::

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
Was it helpful?

Solution

Follow this Steps [ into Eclipse IDE ]:

1)Right click on your project withIn Package Explorer. Got to Java Compiler --> Annotation Processing and check the Enable project specific settings.

2)Expand the Annotation Processing section and select Factory Path. Check Enable project specific settings and then click Add JARs Navigate to the project's libs/ folder and select the ButterKnife jar.

3)Click Ok to save the new settings. Eclipse will ask you to rebuild your project to which you should click Yes.

Note: Make sure that the .apt_generated/ folder is in your project root. It should contain files like YOURACTIVITY$$ViewInjector.java. If these files are not present trigger a clean build by selected Project → Clean. This folder and files should not be checked into revision control.

Reference -> Set up manual configuration for ButterKnife annotations

OTHER TIPS

IntelliJ IDEA — If your project uses an external configuration (like a Maven pom.xml) then annotation processing should just work.

Follow these steps :

  1. Open IDEA's preference: File -> Other Settings -> Default Settings
  2. Navigate to Compiler -> Annotation Processors Then Check Enable annotation processing

Reference -> Set up manual configuration for ButterKnife annotations

Update 30-6-2015

Follow These Steps for Intellij IDEA 14.0 :

  1. Open IDEA's preference: File -> Settings or click ctl + alt + s

  2. Navigate to Build, Execution and deployment -> Compiler -> Annotation Processors and Choose your project Then Check Enable annotation processing

@Bind replaces @InjectView and @InjectViews. ButterKnife.bind and ButterKnife.unbind replaces ButterKnife.inject and ButterKnife.reset, respectively.

look at this : @InjectView replaced ...

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top