Butterknife: Is there an issue with any of these libraries and Butterknife ?

Created on 10 Nov 2015  Â·  4Comments  Â·  Source: JakeWharton/butterknife

Hi,

I have a problem with these libraries and Butterknife recently.
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'
compile 'com.android.support:support-v13:23.1.0'

If i use the above libraries with version 23.1.0 butterknife seems to fail in binding the views.

But if i use the lower version of the same libraries as below, Butterknife works perfectly.
Is there something that i am missing to do or add in gradle.

compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
compile 'com.android.support:support-v13:23.0.1'

Most helpful comment

I created a work around like this utilizing Butterknife:

ButterKnife.bind(this);
// navigationView uses bind annotation - remember to remove the app:headerLayout from xml

View navigationHeader = navigationView.inflateHeaderView(R.layout.navigation_header);
accountImage = ButterKnife.findById(navigationHeader, R.id.account_image);
accountName = ButterKnife.findById(navigationHeader, R.id.account_name);

All 4 comments

You haven't provided any information as to what isn't working, what you
bindings looks like, and what your layout looks like.

On Mon, Nov 9, 2015, 10:59 PM Rajiv Singh [email protected] wrote:

Hi,

I have a problem with these libraries and Butterknife recently.
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'
compile 'com.android.support:support-v13:23.1.0'

If i use the above libraries with version 23.1.0 butterknife seems to fail
in binding the views.

But if i use the lower version of the same libraries as below, Butterknife
works perfectly.
Is there something that i am missing to do or add in gradle.

compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
compile 'com.android.support:support-v13:23.0.1'

—
Reply to this email directly or view it on GitHub
https://github.com/JakeWharton/butterknife/issues/406.

11-10 10:09:23.573 20796-20796/com.playtm.android.lyfe_client E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                Process: com.playtm.android.lyfe_client, PID: 20796
                                                                                java.lang.RuntimeException: Unable to start activity ComponentInfo{com.playtm.android.lyfe_client/com.playtm.android.lyfe_client.ui.modules.home.activities.Home}: java.lang.RuntimeException: Unable to bind views for com.playtm.android.lyfe_client.ui.modules.home.activities.Home
                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3155)
                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3263)
                                                                                    at android.app.ActivityThread.access$1000(ActivityThread.java:197)
                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1687)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                    at android.os.Looper.loop(Looper.java:145)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6897)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
                                                                                 Caused by: java.lang.RuntimeException: Unable to bind views for com.playtm.android.lyfe_client.ui.modules.home.activities.Home
                                                                                    at butterknife.ButterKnife.bind(ButterKnife.java:193)
                                                                                    at butterknife.ButterKnife.bind(ButterKnife.java:124)
                                                                                    at com.playtm.android.lyfe_client.ui.modules.home.activities.Home.onCreate(Home.java:83)
                                                                                    at android.app.Activity.performCreate(Activity.java:6550)
                                                                                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3108)
                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3263) 
                                                                                    at android.app.ActivityThread.access$1000(ActivityThread.java:197) 
                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1687) 
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                    at android.os.Looper.loop(Looper.java:145) 
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6897) 
                                                                                    at java.lang.reflect.Method.invoke(Native Method) 
                                                                                    at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
                                                                                 Caused by: java.lang.IllegalStateException: Required view 'imgUserProfile' with ID 2131886643 for field 'mImgUserProfilePic' was not found. If this view is optional add '@Nullable' (fields) or '@Optional' (methods) annotation.
                                                                                    at butterknife.internal.Finder.findRequiredView(Finder.java:51)
                                                                                    at com.playtm.android.lyfe_client.ui.modules.home.activities.Home$$ViewBinder.bind(Home$$ViewBinder.java:16)
                                                                                    at com.playtm.android.lyfe_client.ui.modules.home.activities.Home$$ViewBinder.bind(Home$$ViewBinder.java:10)
                                                                                    at butterknife.ButterKnife.bind(ButterKnife.java:191)
                                                                                    at butterknife.ButterKnife.bind(ButterKnife.java:124) 
                                                                                    at com.playtm.android.lyfe_client.ui.modules.home.activities.Home.onCreate(Home.java:83) 
                                                                                    at android.app.Activity.performCreate(Activity.java:6550) 
                                                                                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120) 
                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3108) 
                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3263) 
                                                                                    at android.app.ActivityThread.access$1000(ActivityThread.java:197) 
                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1687) 
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                    at android.os.Looper.loop(Looper.java:145) 
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6897) 
                                                                                    at java.lang.reflect.Method.invoke(Native Method) 
                                                                                    at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 

I get the above error for my home activity
Following is the code for the same

public class Home extends AppCompatActivity implements HomeView, View.OnClickListener {
    private static final String TAG = "Home Activity";
    private static final String PREFERENCES_FILE = "LYFE";
    private static final String PREF_USER_LEARNED_DRAWER = "userLearnedDrawer";
    private BaseCore baseCore = BaseCore.getInstance();
    private HomePresenter homePresenter;
    private HashMap<Long, Event> eventMap;
    private HashMap<Long, ArrayList<Long>> eventByCategoryMap;
    @Bind(R.id.drawerLayout)
    DrawerLayout mDrawerLayout;
    @Bind(R.id.imgUserProfile)
    ImageView mImgUserProfilePic;
    @Bind(R.id.imgUserCover)
    ImageView mImgUserCover;
    @Bind(R.id.txtUserName)
    TextView mTxtUserName;
    @Bind(R.id.txtUserEmail)
    TextView mTextUserEmail;
    @Bind(R.id.navigation_view)
    NavigationView mNavigationView;
    @Bind(R.id.activity_home_viewPager)
    MaterialViewPager mViewPager;
    private User mUser;
    private HomeAdapter mHomeAdapter;
    private ArrayList<EventCategory> eventCategories;
    private Integer activePage = null;
    private BroadcastReceiver mDeepLinkReceiver=null;
    private boolean mUserLearnedDrawer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        ButterKnife.bind(this);
        if (savedInstanceState != null) {
            activePage =  savedInstanceState.getInt("activePage");

        }else{
            // No savedInstanceState, so it is the first launch of this activity
            Intent intent = getIntent();
            if(intent!=null){
                if (AppInviteReferral.hasReferral(intent)) {
                    Log.d(TAG,"Launching from oncreate");
                    // In this case the referral data is in the intent launching the MainActivity,
                    // which means this user already had the app installed. We do not have to
                    // register the Broadcast Receiver to listen for Play Store Install information
                    baseCore.setReferralIntent(intent);
                    //launchDeepLinkActivity(intent);
                }else if(Intent.ACTION_VIEW.equals(intent.getAction()) && intent.getDataString()!=null){
                        baseCore.setBrowserReferralIntent(intent);
                    }

            }

        }
        launchIntroActivity();

        Toolbar toolbar = mViewPager.getToolbar();
        mUser = baseCore.getUser();
        if (toolbar != null) {
            setSupportActionBar(toolbar);

            ActionBar actionBar = getSupportActionBar();
            actionBar.setHomeAsUpIndicator(R.drawable.ic_menu);
            actionBar.setDisplayHomeAsUpEnabled(true);
            actionBar.setTitle("");
            toolbar.setNavigationOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mDrawerLayout.openDrawer(GravityCompat.START);
                }
            });

        }


        setupNavDrawer();
        homePresenter = new HomePresenter(this);



    }

    private void setupNavDrawer() {
        if (mUser != null) {
            try {
                mTxtUserName.setText(mUser.getUsrName());
                if (mUser.getUsrCoverImgURL() != null && !mUser.getUsrCoverImgURL().isEmpty()) {
                    Glide.with(getContext()).load(mUser.getUsrCoverImgURL()).diskCacheStrategy(DiskCacheStrategy.ALL).into(mImgUserCover);
                }
                if (mUser.getUsrImgURL() != null && !mUser.getUsrImgURL().isEmpty()) {
                    Glide.with(getContext()).load(mUser.getUsrImgURL()).diskCacheStrategy(DiskCacheStrategy.ALL).into(mImgUserProfilePic);
                }
                mTextUserEmail.setText(mUser.getUsrEmail());
            } catch (Exception e) {
                Log.e(TAG, "Error in setting up nav drawer " + e.getMessage());
            }
        }

        mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {
                switch (menuItem.getItemId()) {
                    case R.id.nav_coins:
                        mDrawerLayout.closeDrawers();

                        //startActivity(new Intent(getContext(), CoinsActivity.class));

                        break;
                    case R.id.nav_friends:
                        mDrawerLayout.closeDrawers();

                        /*startActivityForResult(Games.Leaderboards.getLeaderboardIntent(mGoogleApiClient,
                                getResources()
                                        .getString(R.string.leaderboard_1)), REQUEST_LEADERBOARD);*/
                       // startActivity(new Intent(getContext(),FriendsActivity.class));

                        break;
                    case R.id.nav_achievements:
                        mDrawerLayout.closeDrawers();

                        //startActivity(new Intent(this.getActivity(), AchievementsActivity.class));
                        //startActivityForResult(Games.Achievements.getAchievementsIntent(mGoogleApiClient), REQUEST_ACHIEVEMENTS);
                        break;
                    case R.id.nav_notifications:
                        mDrawerLayout.closeDrawers();

                        //startActivity(new Intent(getContext(), NotificationsActivity.class));
                        break;
                    case R.id.nav_topEvents:
                       mDrawerLayout.closeDrawers();
                        /*Intent intentT = new Intent(getContext(), FilterEventsActivity.class);
                        intentT.putExtra("tag", TOPEVENTS);
                        startActivity(intentT);*/
                        //   finish();
                        break;
                    case R.id.nav_myEvents:
                        mDrawerLayout.closeDrawers();
                        Intent intentM = new Intent(getContext(), MyEvents.class);
                        startActivity(intentM);
                        //    finish();
                        break;
                    case R.id.nav_latestEvents:
                        mDrawerLayout.closeDrawers();
                      /*  Intent intentLA = new Intent(getContext(), FilterEventsActivity.class);
                        intentLA.putExtra("tag", LATESTEVENTS);
                        startActivity(intentLA);*/
                        // finish();
                        break;
                    case R.id.nav_featuredEvents:
                        mDrawerLayout.closeDrawers();
                       /* Intent intentF = new Intent(getContext(), FilterEventsActivity.class);
                        intentF.putExtra("tag", FEATUREDEVENTS);
                        startActivity(intentF);*/
                        //  finish();
                        break;
                    case R.id.nav_settings:
                        mDrawerLayout.closeDrawers();
                       Intent intentS = new Intent(getContext(), Settings.class);
                        startActivity(intentS);
                        break;
                    default:
                        return true;
                }
                return true;
            }
        });
        mUserLearnedDrawer = Boolean.valueOf(readSharedSetting(this, PREF_USER_LEARNED_DRAWER, "false"));
        if (!mUserLearnedDrawer && baseCore.isIntroShown() ) {
            mDrawerLayout.openDrawer(GravityCompat.START);
            mUserLearnedDrawer = true;
            saveSharedSetting(this, PREF_USER_LEARNED_DRAWER, "true");
        }
    }

    @Override
    public void onStart(){
        super.onStart();
        registerDeepLinkReceiver();
        homePresenter.start();
    }


    @Override
    public void onStop(){
        super.onStop();
        unregisterDeepLinkReceiver();
        homePresenter.stop();
    }

    private void launchIntroActivity() {
        if(!baseCore.isIntroShown()){
            startActivity(new Intent(this, Intro.class));
            finish();
        }else if(baseCore.getReferralIntent()!=null){
            Intent intent = baseCore.getReferralIntent();
            baseCore.setReferralIntent(null);//nullify the intent
            launchDeepLinkActivity(intent);
        }else if(baseCore.getBrowserReferralIntent()!=null){
            Intent intent = baseCore.getBrowserReferralIntent();
            baseCore.setBrowserReferralIntent(null);//nullify the intent
            launchDeepLinkActivity(intent);
        }
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        if(activePage !=null){
            outState.putInt("activePage", activePage);
        }else{
            outState.putInt("activePage", 0);
        }


    }

    @Override
    public void onRestoreInstanceState(Bundle savedInstanceState) {

        // Always call the superclass so it can restore the view hierarchy
        super.onRestoreInstanceState(savedInstanceState);
        // Restore state members from saved instance
        activePage =  savedInstanceState.getInt("activePage");

    }

    @Override
    public void showEventCategories() {
        FirebaseHelper.getInstance().setOnLinePresence(baseCore.getUser());
        mHomeAdapter = new HomeAdapter(getFragmentManager(), eventCategories,eventMap,eventByCategoryMap);
        mHomeAdapter.notifyDataSetChanged();

        ViewPager viewPager = mViewPager.getViewPager();

        viewPager.setAdapter(mHomeAdapter);
        mViewPager.getPagerTitleStrip().setViewPager(viewPager);
        mViewPager.getPagerTitleStrip().setIndicatorColor(Color.parseColor(eventCategories.get(0).getCatColor()));
        mViewPager.getPagerTitleStrip().setTextColor(Color.WHITE);
        if(activePage!=null){
            //mViewPager.getViewPager().setCurrentItem(activePage);
        }
        mViewPager.getPagerTitleStrip().setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {

            }

            @Override
            public void onPageSelected(int i) {
                activePage = i;
                mViewPager.getPagerTitleStrip().setIndicatorColor(Color.parseColor(eventCategories.get(i).getCatColor()));

            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });

        mViewPager.setMaterialViewPagerListener(new MaterialViewPager.Listener() {
            @Override
            public HeaderDesign getHeaderDesign(int page) {

                return HeaderDesign.fromColorAndUrl(
                        Color.parseColor(eventCategories.get(page).getCatColor()),
                        eventCategories.get(page).getCatImgUrl());
            }
        });

    }

    @Override
    public HashMap<Long, Event> getEventMap() {

        return eventMap;
    }

    @Override
    public HashMap<Long, ArrayList<Long>> getEventByCategoryMap() {

        return eventByCategoryMap;
    }

    @Override
    public void setEventMap(HashMap<Long, Event> eventMap) {
        this.eventMap = eventMap;
    }

    @Override
    public void setEventByCategoryMap(HashMap<Long, ArrayList<Long>> eventByCategoryMap) {
        this.eventByCategoryMap = eventByCategoryMap;
    }

    @Override
    public ArrayList<EventCategory> getEventCategories() {
        return eventCategories;
    }

    @Override
    public void setEventCategories(ArrayList<EventCategory> eventCategories) {
        this.eventCategories = eventCategories;
    }


    @Override
    public Context getContext() {
        return this;
    }

    @Override
    public void onClick(View v) {

    }


    /**
     * There are two broadcast receivers in this application.  The first is ReferrerReceiver, it
     * is a global receiver declared in the manifest.  It receives broadcasts from the Play Store
     * and then broadcasts messages to the local broadcast receiver, which is registered here.
     * Since the broadcast is asynchronous, it can occur after the app has started, so register
     * for the notification immediately in onStart. The Play Store broadcast should be very soon
     * after the app is first opened, so this receiver should trigger soon after start
     */
    // [START register_unregister_launch]
    private void registerDeepLinkReceiver() {
        // Create local Broadcast receiver that starts DeepLinkActivity when a deep link
        // is found
        mDeepLinkReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                if (AppInviteReferral.hasReferral(intent)) {
                    Log.d(TAG,"Calling from Broadcast reciever");
                    launchDeepLinkActivity(intent);
                }
            }
        };

        IntentFilter intentFilter = new IntentFilter(getString(R.string.action_deep_link));
        LocalBroadcastManager.getInstance(this).registerReceiver(
                mDeepLinkReceiver, intentFilter);
    }

    private void unregisterDeepLinkReceiver() {
        if (mDeepLinkReceiver != null) {
            LocalBroadcastManager.getInstance(this).unregisterReceiver(mDeepLinkReceiver);
        }
    }

    /**
     * Launch DeepLinkActivity with an intent containing App Invite information
     */
    private void launchDeepLinkActivity(Intent intent) {
        Log.d(TAG, "launchDeepLinkActivity:" + intent);
        Intent newIntent = new Intent(intent).setClass(this, Deeplink.class);
        startActivity(newIntent);
        finish();
    }
    // [END register_unregister_launch]

    public static void saveSharedSetting(Context ctx, String settingName, String settingValue) {
        SharedPreferences sharedPref = ctx.getSharedPreferences(PREFERENCES_FILE, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPref.edit();
        editor.putString(settingName, settingValue);
        editor.apply();
    }
    public static String readSharedSetting(Context ctx, String settingName, String defaultValue) {
        SharedPreferences sharedPref = ctx.getSharedPreferences(PREFERENCES_FILE, Context.MODE_PRIVATE);
        return sharedPref.getString(settingName, defaultValue);
    }

}

Following is the layout

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawerLayout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:fitsSystemWindows="true"
    tools:context="com.playtm.android.lyfe_client.ui.modules.home.activities.Home">

    <include layout="@layout/content_home" />

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:layout_gravity="start"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/nav_menu"
        />
</android.support.v4.widget.DrawerLayout>

Following is the navigation view header layout

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="200dp">

    <ImageView
        android:id="@+id/imgUserCover"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        android:src="@drawable/awesome" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="bottom"
        android:background="@drawable/gradient_dark"
        android:gravity="bottom"
        android:orientation="vertical">

        <TextView
            android:id="@+id/txtUserName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"

            android:fontFamily="sans-serif-light"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_vertical_margin"

            android:textColor="#FFF"
            android:textSize="25sp" />


        <TextView
            android:id="@+id/txtUserEmail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:fontFamily="sans-serif-light"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_vertical_margin"
            android:textColor="#FFF"
            android:textSize="15sp" />


    </LinearLayout>
    <!--
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/editProfile"
                android:layout_gravity="right"
                android:paddingTop= "@dimen/activity_vertical_margin"
                android:paddingRight="@dimen/activity_vertical_margin"
                android:src="@drawable/ic_action_edit" />-->

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/imgUserProfile"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="38dp"
         />

</FrameLayout>

Following is the nave menu layout

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group
        android:id="@+id/maingrp"
        android:checkableBehavior="single">
        <item
            android:id="@+id/nav_games"
            android:icon="@drawable/ic_games_black_24dp"
            android:title="@string/navItemGames" />
        <item
            android:id="@+id/nav_achievements"
            android:icon="@drawable/ic_achievements"
            android:title="@string/navItemAchievements" />
        <item
            android:id="@+id/nav_coins"
            android:icon="@drawable/ic_coins"
            android:title="@string/navItemCoins" />
        <item
            android:id="@+id/nav_orbits"
            android:icon="@drawable/ic_orbitz"
            android:title="@string/navItemOrbits" />
        <item
            android:id="@+id/nav_friends"
            android:icon="@drawable/ic_friends"
            android:title="@string/navItemFriends" />

        <item
            android:id="@+id/nav_interests"
            android:icon="@drawable/ic_interest"
            android:title="@string/navItemInterests" />
        <item
            android:id="@+id/nav_notifications"
            android:icon="@drawable/ic_notifications_black_24dp"
            android:title="@string/navItemNotification" />

        <item android:title="Events">

            <menu>

                <item
                    android:id="@+id/nav_topEvents"
                    android:icon="@drawable/ic_top"
                    android:title="@string/navTopEvents" />
                <item
                    android:id="@+id/nav_myEvents"
                    android:icon="@drawable/ic_personal"
                    android:title="@string/navMyEvents" />
                <item
                    android:id="@+id/nav_featuredEvents"
                    android:icon="@drawable/ic_featured"
                    android:title="@string/navFeaturedEvents" />
                <item
                    android:id="@+id/nav_latestEvents"
                    android:icon="@drawable/ic_new"
                    android:title="@string/navLatestEvents" />


            </menu>
        </item>


    </group>


    <group
        android:id="@+id/settingGrp"
        android:checkableBehavior="single">
        <item
            android:id="@+id/nav_settings"
            android:icon="@drawable/ic_settings_black_24dp"
            android:title="@string/navSettings" />
        <item
            android:id="@+id/nav_help"
            android:icon="@drawable/ic_help_black_24dp"
            android:title="@string/navHelp" />
    </group>


</menu>

Following is the build gradle dependencies

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'

    compile('com.crashlytics.sdk.android:crashlytics:2.5.2@aar') {
        transitive = true;
    }

    compile('com.github.florent37:materialviewpager:1.1.2@aar') {
        transitive = true
    }

    compile('cn.trinea.android.view.autoscrollviewpager:android-auto-scroll-view-pager:1.1.2') {
        exclude module: 'support-v4'
    }

    compile('com.twitter.sdk.android:twitter:1.9.0@aar') {
        transitive = true;

    }

    compile('com.adobe.creativesdk:image:4.0.0') {
        exclude group: 'com.squareup.okhttp';
    }

    compile('com.crashlytics.sdk.android:crashlytics-ndk:1.1.1@aar') {
        transitive = true;
    }
    compile('com.thomashaertel:multispinner:0.1.1@aar') {}
    compile('com.afollestad.material-dialogs:core:0.8.2.0@aar') {
        transitive = true
    }
    compile('com.afollestad.material-dialogs:commons:0.8.2.0@aar') {
        transitive = true
    }

    apt 'com.jakewharton:butterknife-compiler:8.0.0-SNAPSHOT'
    compile 'com.facebook.android:facebook-android-sdk:4.7.0'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:support-v13:23.1.0'
    compile 'com.github.paolorotolo:appintro:3.2.0'
    compile 'com.squareup:otto:1.3.8'
    compile 'com.firebase:firebase-client-android:2.4.0'
    compile 'com.firebaseui:firebase-ui:0.2.2'
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta1'
    compile 'com.jakewharton:butterknife:8.0.0-SNAPSHOT'
    compile 'com.github.bumptech.glide:glide:3.6.1'
    compile 'de.hdodenhof:circleimageview:2.0.0'
    compile 'me.relex:circleindicator:1.1.5@aar'
    compile 'com.oguzdev:CircularFloatingActionMenu:1.0.2'
    compile 'com.commonsware.cwac:cam2:0.3.+'
    compile 'com.adobe.creativesdk.foundation:auth:0.5.3'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.5.0'
    compile 'com.malmstein:fenster:0.0.1'
    compile 'com.google.android.gms:play-services:8.3.0'
    compile 'com.google.apis:google-api-services-youtube:v3-rev151-1.20.0'
    compile 'com.google.api-client:google-api-client-android:1.20.0'
    compile 'com.bowyer.app:fabtransitionlayout:0.2.0@aar'
    compile 'com.github.ozodrukh:CircularReveal:1.1.1@aar'
    compile 'com.borax12.materialdaterangepicker:library:1.2'
    compile 'com.cloudinary:cloudinary-android:1.2.2'
    compile 'com.sothree.slidinguppanel:library:3.2.0'
    compile 'com.github.AndroidDeveloperLB:MaterialPreferenceLibrary:5'
    compile 'com.android.support:support-v4:23.1.0'

I get this issue as per my problem stated above.

This is actually an issue with NavigationView rather than Butterknife.

I created a work around like this utilizing Butterknife:

ButterKnife.bind(this);
// navigationView uses bind annotation - remember to remove the app:headerLayout from xml

View navigationHeader = navigationView.inflateHeaderView(R.layout.navigation_header);
accountImage = ButterKnife.findById(navigationHeader, R.id.account_image);
accountName = ButterKnife.findById(navigationHeader, R.id.account_name);
Was this page helpful?
0 / 5 - 0 ratings

Related issues

alejandro-pnz picture alejandro-pnz  Â·  3Comments

galibimtiaz picture galibimtiaz  Â·  3Comments

ZakTaccardi picture ZakTaccardi  Â·  3Comments

Pitel picture Pitel  Â·  3Comments

voiddog picture voiddog  Â·  3Comments