【问题标题】:Android ImageButton setOnClickListener NullPointerExceptionAndroid ImageButton setOnClickListener NullPointerException
【发布时间】:2015-04-23 09:00:32
【问题描述】:

此代码出现 java.lang.NullPointerException 错误:

A= (ImageButton) findViewById( R.id.button);
A.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        setContentView(R.layout.activity_prof);

    }
});

该应用程序在我的手机三星 Galaxy Ace Plus S7500 中运行,但在使用 Nexus 5 和三星 Galaxy S4 的模拟器中崩溃。有人可以帮我吗?

日志猫:

java.lang.RuntimeException: Unable to start activity ComponentInfo{testteam.test/testteam.test.MainActivity}: java.lang.NullPointerException
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
        at android.app.ActivityThread.access$800(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5017)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.NullPointerException
        at testteam.test.MainActivity.onCreate(MainActivity.java:24)
        at android.app.Activity.performCreate(Activity.java:5231)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 你能把你的logcat贴出来吗?
  • 如果您使用的是 setContentView(R.layout.activity_prof);在 onClick 侦听器中,您如何获得该 A imageview 的引用,请发布完整代码
  • @Milad 我放了 LogCat。 A 是一个变量:私有 ImageButton。没有其他代码
  • @ClearCode 在使用 setContentView(R.layout.activity_prof); 创建布局之前,您的应用程序在使用此代码 A= (ImageButton) findViewById( R.id.button); 时如何工作?这应该会让你出错!

标签: java android android-studio nullpointerexception


【解决方案1】:

这类错误通常来自于发现错误的观点。请仔细检查您的 xml 布局并确保您在 xml 中有一个名为 buttonImageButton

您当前的视图中似乎没有这个ImageButton。可能是因为在onCreatMethod中设置onClickListener之前没有调用setContentView方法

【讨论】:

  • 错误,我不能这样做。 Android Studio 强迫我把 View.OnClickListener
  • 因为你导入了错误的类。检查你的进口
  • 有什么区别?如果你导入 onClickListener 那么它和 View.onClickListener 是一样的...
  • @AbAppletic 顺便说一句,我更新了答案,这是一个老问题谢谢你记得。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多