图片浏览空指针异常 [英] Image View Null Pointer Exception

查看:167
本文介绍了图片浏览空指针异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想能够移动长颈鹿图像视图。这好像事情是错误的方式调用IM从strings.xml中或东西它让回来的NullPointerException异常的giraffe.setOnTouchListener(本)的资源;.这里是code:

 公共类MainGameActivity扩展活动实现OnTouchListener {浮动的x,y,DX,DY;
ImageView的长颈鹿;
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        ImageView的长颈鹿=(ImageView的)findViewById(R.id.giraffe);
        的setContentView(R.layout.activity_main_game);
        giraffe.setOnTouchListener(本);
}
公共布尔onTouch(视图V,MotionEvent我){
    开关(me.getAction()){
        案例MotionEvent.ACTION_DOWN:
        {
            X = me.getX();
            Y = me.getY();
            DX = X - giraffe.getX();
            DY = Y - giraffe.getY();
        }
        打破;
        案例MotionEvent.ACTION_MOVE:
        {
            giraffe.setX(me.getX() - DX);
            giraffe.setY(me.getY() - DY);
        }
        打破;
    }
    返回true;
}@覆盖
公共布尔onCreateOptionsMenu(菜单菜单){
    //充气菜单;如果是present这增加了项目操作栏。
    。getMenuInflater()膨胀(R.menu.activity_main_game,菜单);
    返回true;
}

}

 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
的xmlns:工具=htt​​p://schemas.android.com/tool​​s
机器人:layout_width =match_parent
机器人:layout_height =match_parent
工具:上下文=MainGameActivity。>< ImageView的
    机器人:ID =@ + ID /长颈鹿
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_alignParentBottom =真
    机器人:layout_centerHorizo​​ntal =真
    机器人:layout_marginBottom =58dp
    机器人:contentDescription =@字符串/长颈鹿
    机器人:SRC =@绘制/ giraffeicon/>

 <?XML版本=1.0编码=UTF-8&GT?;

 <字符串名称=APP_NAME>坠物< /串>
<字符串名称=menu_settings>设置< /串>
<字符串名称=splash_text>开始躲着在:LT; /串>
<字符串名称=splash_number_countdown> < /串>
<字符串名称=title_activity_main_game> < /串>
<字符串名称=版本> 1.0版< /串>
<字符串名称=长颈鹿>长颈鹿< /串>
<字符串名称=s_and_b_productions>创建者:S&放大器;放大器; b&制作LT; /串>
<绘制NAME =长颈鹿>#F00< /绘>

  07-05 19:41:52.006:E / AndroidRuntime(1826):致命异常:主要
07-05 19:41:52.006:E / AndroidRuntime(1826):了java.lang.RuntimeException:无法启动活动ComponentInfo{com.SandBProductions.fallingobjects/com.SandBProductions.fallingobjects.MainGameActivity}:显示java.lang.NullPointerException
07-05 19:41:52.006:E / AndroidRuntime(1826):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
07-05 19:41:52.006:E / AndroidRuntime(1826):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
07-05 19:41:52.006:E / AndroidRuntime(1826):在android.app.ActivityThread.access $ 600(ActivityThread.java:141)
07-05 19:41:52.006:E / AndroidRuntime(1826):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1234)
07-05 19:41:52.006:E / AndroidRuntime(1826):在android.os.Handler.dispatchMessage(Handler.java:99)
07-05 19:41:52.006:E / AndroidRuntime(1826):在android.os.Looper.loop(Looper.java:137)
07-05 19:41:52.006:E / AndroidRuntime(1826):在android.app.ActivityThread.main(ActivityThread.java:5039)
07-05 19:41:52.006:E / AndroidRuntime(1826):在java.lang.reflect.Method.invokeNative(本机方法)
07-05 19:41:52.006:E / AndroidRuntime(1826):在java.lang.reflect.Method.invoke(Method.java:511)
07-05 19:41:52.006:E / AndroidRuntime(1826):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
07-05 19:41:52.006:E / AndroidRuntime(1826):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-05 19:41:52.006:E / AndroidRuntime(1826):在dalvik.system.NativeStart.main(本机方法)
07-05 19:41:52.006:E / AndroidRuntime(1826):因:显示java.lang.NullPointerException
07-05 19:41:52.006:E / AndroidRuntime(1826):在com.SandBProductions.fallingobjects.MainGameActivity.onCreate(MainGameActivity.java:24)
07-05 19:41:52.006:E / AndroidRuntime(1826):在android.app.Activity.performCreate(Activity.java:5104)
07-05 19:41:52.006:E / AndroidRuntime(1826):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
07-05 19:41:52.006:E / AndroidRuntime(1826):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)


解决方案

您需要findViewById前的setContentView,否则活动不知道去哪里找。

I am trying to be able to move the 'giraffe' image view. It seems as though something is wrong with the way im calling the resource from the strings.xml or something it keeps coming back as NullPointerException on the giraffe.setOnTouchListener(this);. Here is the code:

public class MainGameActivity extends Activity implements OnTouchListener {

float x,y,dx,dy;
ImageView giraffe;


@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        ImageView giraffe = (ImageView)findViewById(R.id.giraffe);
        setContentView(R.layout.activity_main_game);
        giraffe.setOnTouchListener(this);
}


public boolean onTouch(View v, MotionEvent me){
    switch(me.getAction()){
        case MotionEvent.ACTION_DOWN:
        {
            x = me.getX();
            y = me.getY();
            dx = x - giraffe.getX();
            dy = y - giraffe.getY();
        }
        break;
        case MotionEvent.ACTION_MOVE :
        {
            giraffe.setX(me.getX()-dx);
            giraffe.setY(me.getY()-dy);
        }
        break;
    }
    return true;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main_game, menu);
    return true;
}

}

<RelativeLayout 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"
tools:context=".MainGameActivity" >

<ImageView
    android:id="@+id/giraffe"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="58dp"
    android:contentDescription="@string/giraffe"
    android:src="@drawable/giraffeicon" />

<?xml version="1.0" encoding="utf-8"?>

<string name="app_name">Falling Objects</string>
<string name="menu_settings">Settings</string>
<string name="splash_text">Start dodging in:</string>
<string name="splash_number_countdown" > </string>
<string name="title_activity_main_game" > </string>
<string name="version">Version 1.0</string>
<string name="giraffe">Giraffe</string>
<string name="s_and_b_productions">Created by: S&amp;B Productions</string>
<drawable name="giraffe">#F00</drawable>

    07-05 19:41:52.006: E/AndroidRuntime(1826): FATAL EXCEPTION: main
07-05 19:41:52.006: E/AndroidRuntime(1826): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.SandBProductions.fallingobjects/com.SandBProductions.fallingobjects.MainGameActivity}: java.lang.NullPointerException
07-05 19:41:52.006: E/AndroidRuntime(1826):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at android.os.Looper.loop(Looper.java:137)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at android.app.ActivityThread.main(ActivityThread.java:5039)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at java.lang.reflect.Method.invokeNative(Native Method)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at java.lang.reflect.Method.invoke(Method.java:511)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at dalvik.system.NativeStart.main(Native Method)
07-05 19:41:52.006: E/AndroidRuntime(1826): Caused by: java.lang.NullPointerException
07-05 19:41:52.006: E/AndroidRuntime(1826):     at com.SandBProductions.fallingobjects.MainGameActivity.onCreate(MainGameActivity.java:24)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at android.app.Activity.performCreate(Activity.java:5104)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
07-05 19:41:52.006: E/AndroidRuntime(1826):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)

解决方案

You need to setContentView before findViewById, otherwise the activity doesn't know where to look.

这篇关于图片浏览空指针异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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