NullPointerException,因为长按TextView

时间:2014-11-25 15:44:55

标签: android

我发现这个奇怪的错误归功于Crashlytics,它发生在三星G386T上。 Android应用程序包含新的类软件包android.support.v7以包含“toolbar”组件。不幸的是,错误是非常“一般”的,并且它没有在我的应用程序中为错误开始的类命名。

自定义活动声明的示例:

public class AccessAccountActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.access_acount_activity);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    if (toolbar != null) {
        toolbar.setLogo(R.drawable.ic_toolbar);
        setSupportActionBar(toolbar);
    }

    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setTitle(getString(R.string.app_name));
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

}

Gradle(Android Studio):

compile 'com.android.support:appcompat-v7:21.0.2'

[错误追踪]

java.lang.NullPointerException
   at android.widget.Editor.performLongClick(Editor.java:1010)
   at android.widget.TextView.performLongClick(TextView.java:10153)
   at android.view.View$CheckForLongPress.run(View.java:19434)
   at android.os.Handler.handleCallback(Handler.java:733)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:146)
   at android.app.ActivityThread.main(ActivityThread.java:5692)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
   at dalvik.system.NativeStart.main(NativeStart.java)

2 个答案:

答案 0 :(得分:0)

您好必须使用longClick(TRUE)的返回值

editText.setOnLongClickListener(new View.OnLongClickListener() {
                    @Override
                    public boolean onLongClick(View v) {
                        return true;
                    }
                });

答案 1 :(得分:0)

检查你是否在textview上做了一些更多的动作..我遇到了类似的问题,我发现随着长按,我正在做一个更多的动作(比如显示对话框等),因为这个错误正在发生..尽量避免这样做。或者放一个计时器。请注意,对我而言,这只发生在由崩解剂报告的三星棒棒糖版本上。