【问题标题】:Android: Logcat error where onKeyListener in castedAndroid:Logcat 错误,其中 onKeyListener 被强制转换
【发布时间】:2012-02-24 00:38:48
【问题描述】:

我在为 onKeyListener 强制转换匿名内部类时遇到 logcat 错误。据我所知(我仍在学习所有技巧)这里引用的行没有任何问题,这里是会话的完整错误日志:

02-23 16:28:45.806: E/AndroidRuntime(482): FATAL EXCEPTION: main
02-23 16:28:45.806: E/AndroidRuntime(482): java.lang.RuntimeException: Unable to start activity ComponentInfo{omaxwell.CS211D.PennyConverter/omaxwell.CS211D.PennyConverter.PennyConverterActivity}: java.lang.NullPointerException
02-23 16:28:45.806: E/AndroidRuntime(482):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1748)
02-23 16:28:45.806: E/AndroidRuntime(482):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764)
02-23 16:28:45.806: E/AndroidRuntime(482):  at android.app.ActivityThread.access$1500(ActivityThread.java:122)
02-23 16:28:45.806: E/AndroidRuntime(482):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002)
02-23 16:28:45.806: E/AndroidRuntime(482):  at android.os.Handler.dispatchMessage(Handler.java:99)
02-23 16:28:45.806: E/AndroidRuntime(482):  at android.os.Looper.loop(Looper.java:132)
02-23 16:28:45.806: E/AndroidRuntime(482):  at android.app.ActivityThread.main(ActivityThread.java:4025)
02-23 16:28:45.806: E/AndroidRuntime(482):  at java.lang.reflect.Method.invokeNative(Native Method)
02-23 16:28:45.806: E/AndroidRuntime(482):  at java.lang.reflect.Method.invoke(Method.java:491)
02-23 16:28:45.806: E/AndroidRuntime(482):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
02-23 16:28:45.806: E/AndroidRuntime(482):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
02-23 16:28:45.806: E/AndroidRuntime(482):  at dalvik.system.NativeStart.main(Native Method)
02-23 16:28:45.806: E/AndroidRuntime(482): Caused by: java.lang.NullPointerException
02-23 16:28:45.806: E/AndroidRuntime(482):  at omaxwell.CS211D.PennyConverter.PennyConverterActivity.onCreate(PennyConverterActivity.java:31)//onKeyListener reference
02-23 16:28:45.806: E/AndroidRuntime(482):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
02-23 16:28:45.806: E/AndroidRuntime(482):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712)

这是我的活动代码:

package omaxwell.CS211D.PennyConverter;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class PennyConverterActivity extends Activity
{

    EditText et;
    TextView tv;

    int cents;
    int remaining;
    int quarters;
    int dimes;
    int nickels;
    int pennies;
    String result;

    @Override

    public void onCreate(Bundle b)
    {
        super.onCreate(b);
        setContentView(R.layout.main);

        et.setOnKeyListener(new View.OnKeyListener() //Line referenced in LogCat
        {   
            @Override
            public boolean onKey(View v, int KeyCode, KeyEvent event) 
            {
                if((event.getAction() == KeyEvent.ACTION_DOWN) && (KeyCode == KeyEvent.KEYCODE_ENTER))
                { 
                    result = et.getText().toString(); 
                    return (true);
                }
                return (true);
            }
        });

        cents = Integer.parseInt(result);

        quarters = cents / 25;
        tv.setText(R.string.quarters);
        remaining = cents % 25;

        dimes = remaining / 10;
        tv.setText(R.string.dimes);
        remaining = remaining % 10;

        nickels = remaining / 5;
        tv.setText(R.string.nickles);

        pennies = remaining % 5;
        tv.setText(R.string.pennies);

    }
}

当我在模拟器中运行应用程序时,它不会自动启动,当我去应用程序抽屉启动它时,它会在启动时崩溃。

【问题讨论】:

  • NullPointerException 是一个简单的错误,请仔细检查您的代码,可能是var无法初始化的地方,var et inited?

标签: java android eclipse emulation logcat


【解决方案1】:

您从未初始化过et。我想你不见了

et = (EditText) findViewById(R.id.my_edit_text);

就在那条线的正上方。

【讨论】:

  • 我初始化了它,当我在Eclipse中点击运行时它仍然无法启动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-09
  • 2012-08-07
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-07
相关资源
最近更新 更多