用黄油刀库视图注射 [英] Using Butter Knife library for view injection

查看:252
本文介绍了用黄油刀库视图注射的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在做什么 ::

  1. 在我试图运行黄油刀库我简单的项目
  2. 在我已按照文件中的所有步骤,但我仍然很 获取日志错误
  3. 我该如何解决这个问题,我失去了任何一步
  4. 在我还增加了罐子libs文件夹

MainActivity.java

 包com.example.butterknife;

进口android.app.Activity;
进口android.os.Bundle;
进口android.widget.TextView;
进口butterknife.ButterKnife;
进口butterknife.InjectView;

公共类MainActivity延伸活动{

    @InjectView(R.id.txtID)TextView的称号;

    @覆盖
    保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);

        ButterKnife.inject(本);
        title.setText(大家好!);

    }
}
 

登录 ::

  11月4日至15日:50:57.845:E / AndroidRuntime(913):致命异常:主要
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):java.lang.RuntimeException的:无法启动的活动ComponentInfo {com.example.butterknife / com.example.butterknife.MainActivity}:显示java.lang.NullPointerException
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在android.app.ActivityThread.access $ 600(ActivityThread.java:122)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1146)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在android.os.Handler.dispatchMessage(Handler.java:99)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在android.os.Looper.loop(Looper.java:137)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在android.app.ActivityThread.main(ActivityThread.java:4340)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在java.lang.reflect.Method.invokeNative(本机方法)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在java.lang.reflect.Method.invoke(Method.java:511)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在dalvik.system.NativeStart.main(本机方法)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):由:显示java.lang.NullPointerException
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在com.example.butterknife.MainActivity.onCreate(MainActivity.java:19)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在android.app.Activity.performCreate(Activity.java:4465)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
一十一月4日至15日:50:57.845:E / AndroidRuntime(913):11 ...更多
一十一月4日至15日:51:06.722:I /处理(913):发送信号。 PID:913 SIG:9
 

解决方案

按照以下步骤[到Eclipse IDE]:

1)右键单击您的项目在包资源管理器。该杀 Java编译器 - > 注释处理并检查启用项目的具体设置

2)展开注释处理部分,然后选择工厂路径。检查启用项目的具体设置,然后点击添加JAR文件导航到该项目的库/文件夹,选择 ButterKnife 罐子。

3)点击确定来保存新的设置。 的Eclipse 会问你要重建你的项目,你可以点击

注意:确保 .apt_generated / 文件夹在你的项目的根。它应该包含如 YO​​URACTIVITY $$ ViewInjector.java 文件。如果这些文件没有被选定的项目→清洁present触发一个干净的构建。该文件夹及文件不应该签入到版本控制。

参考 - > 设置手动配置ButterKnife注释

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

解决方案

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

这篇关于用黄油刀库视图注射的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆