- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这是一个非常奇怪的行为,我不明白为什么,基本上 Butterknife根本不约束任何观点。请看下面的代码:
这是一个 fragment :
@BindView(R.id.share_detail_swipe)
public SMSwipeRefreshLayout view1;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.view_share_details, container, false);
ButterKnife.bind(this, view);
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
view1.setRefreshing(true); // NPE here
}
一个非常简单的代码!但是,如果我启动该应用程序,它将失败并出现 NullPointerException
并提示 view1
为 NULL。这非常令人沮丧,因为我正在做 API Doc 的事情。告诉我去做。
有人知道这里发生了什么吗?下面是 view_share_details.xml
:
<com.*.presentation.view.smwidget.SMSwipeRefreshLayout 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:id="@+id/share_detail_swipe"
tools:context="com.*.fragment.ShareDetailsFragment"
>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/detail_share_thumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/detail_share_name_tv"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/detail_share_username_tv"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/detail_share_date_tv"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/detail_share_description_tv"
/>
</LinearLayout>
</ScrollView>
</com.*.presentation.view.smwidget.SMSwipeRefreshLayout>
和 logcat 输出:
FATAL EXCEPTION: main
Process: com.joelmin.sharemon, PID: 4981
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.*.presentation.view.smwidget.SMSwipeRefreshLayout.setRefreshing(boolean)' on a null object reference
at com.joelmin.sharemon.presentation.fragment.ShareDetailsFragment.showRefreshing(ShareDetailsFragment.java:83)
at com.joelmin.sharemon.presentation.presenter.ShareDetailsPresenter.fetchShare(ShareDetailsPresenter.java:25)
at com.joelmin.sharemon.presentation.fragment.ShareDetailsFragment.onViewCreated(ShareDetailsFragment.java:102)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6843)
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)
最佳答案
您应该按如下方式添加 Butterknife 库:
您必须添加依赖项:apt 'com.jakewharton:butterknife-compiler:8.0.1'
还要在应用插件下方放置:'com.android.application':应用插件:'com.neenbedankt.android-apt'
关于java - Butterknife 在我的 Android 应用程序中根本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275716/
我正在尝试使用 Butter Knife这些天在Android Studio,但它让我遇到了一些奇怪的问题。我曾经在eclipse上尝试过 butterknife ,效果很好。我不知道我是否在 And
Butterknife 8.8.0 引入了新的处理器选项 butterknife.debuggable ( link to changelog )。默认情况下,这是真的。在我的 build.gradl
当我尝试在我的 Android 项目中使用 Butterknife 时出现以下异常: 05-20 14:08:41.221 3296-3296/com.fedorparetsky.parcare E/
每次尝试运行我的项目时,我都会遇到一个问题,即找不到 ID 为“com.jakewharton.butterknife”的错误插件。出现有人能告诉我这段代码是怎么回事吗??我被卡住了,感谢任何帮助这是
我想在我的项目中使用 butterknife 。我按照 butterknife 教程做了一切。 但是当我为 View 设置任何东西(setText、setClickListener ...)时,我得到
如果已在 onCreate View 上绑定(bind) View ,但 onclick 不起作用。 这是我的代码: @Override public View onCreateView(Layout
我正在尝试使用 butterknife 。但我收到错误“无法解析符号'**ButterKnife'”。我尝试手动导入 butterknife.ButterKnife 但出现了相同的错误我修改了 gra
我已经安装了 ButterKnife 我的 build.gradle 看起来像这样: dependencies { compile fileTree(dir: 'libs', include:
在我的代码中,如果我想使用 butterknife,应该如何更改? Layout list_item是listview,所以我可以生成butterknife注入(inject),但我不知道如何修复其他
我正在尝试在我的 Android 项目中使用 ButterKnife。 我有一个Activity 实现了一个Interface。我正在使用 MVP 模式。我正在尝试从 EditText 获取文本,但它
我在考虑用Butter knife for android,好像简化代码很厉害 问题是我正在做游戏,所以性能和 apk 大小对我来说非常重要 我的问题是: butterknife 只在编译时使用还是在
我在当前项目中使用 Butterknife 库时遇到一些问题。我目前正在优化手机和平板电脑的项目,例如,有时两者的布局文件之间存在细微差异 布局/layout_example.xml l
我将 @OnClick 监听器设置为列表项中的 View 。在某些情况下,我需要禁用此 View 的监听器,以便 ListView 可以处理点击(应调用 OnItemClickListener),然后
我正在尝试实现 Butterknife进入我的android工作室项目。 但是,当我这样做时,我在 @InjectView 上收到错误“无法解析符号 InjectView”。 我没有成功实现 Butt
我已经创建了一个基类 recyclerview 并且我的其他类正在扩展基类。我已经实现了 butterknife .然而,当其他类扩展基类时,我得到的 View 为空。 下面是我的基类 public
我看到了 Butterknife 教程,它指出: @BindViews({android.R.id.text1, android.R.id.text2}) TextView textEmail,des
昨天我正在使用 butterknife 处理我正在进行的项目。但突然它停止工作了。ButterKnife.bind(this) 无法绑定(bind) View ,因此所有 View 都是抛出 Null
我是 Java 和 Butterknife 的新手,所以我遇到了一些麻烦。在此代码中,该函数正在记录登录按钮的工作情况,但实际上我被卡住了,因为我看不到有关我的应用程序错误或此按钮日志的任何信息。我真
使用 Butterknife 我有例如以下代码: @InjectView(R.id.foo) View vFoo; 但是当我运行 lint 时,我收到以下警告: Field is never assi
为什么 RecyclerView 适配器不能与 ButterKnife 一起使用? 它适用于 findViewById 但不适用于 ButterKnife 适配器类 public class Cate
我是一名优秀的程序员,十分优秀!