我正在制作一个计算器应用程序,当然我的情况下有很多按钮,特别是图像按钮。该应用程序在2.3中工作,但导致4.0的问题。问题是我得到一个NullPointerException,我的ViewFlipper显示下一个视图。
phhistbnt.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
try
{
vib.vibrate(30);
if(animChoice == 0)
vf1.showNext(); // issue here and most likely the rest of them
else if(animChoice == 1)
{
vf1.setOutAnimation(topUp);
vf1.showNext();
vf1.setInAnimation(Fl);
}
else if(animChoice == 2)
{
vf1.setOutAnimation(fadeOut2);
vf1.showNext();
vf1.setInAnimation(hy);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
});
这是LogCat:
08-18 21:55:29.301: W/System.err(6141): java.lang.NullPointerException
08-18 21:55:29.301: W/System.err(6141): at
f7Calc.com.KidzCalcActivity$12.onClick(CalcActivity.java:751)
08-18 21:55:29.301: W/System.err(6141): at
android.view.View.performClick(View.java:3549)
08-18 21:55:29.301: W/System.err(6141): at
android.view.View$PerformClick.run(View.java:14393)
08-18 21:55:29.311: W/System.err(6141): at
android.os.Handler.handleCallback(Handler.java:605)
08-18 21:55:29.311: W/System.err(6141): at
android.os.Handler.dispatchMessage(Handler.java:92)
08-18 21:55:29.311: W/System.err(6141): at android.os.Looper.loop(Looper.java:154)
08-18 21:55:29.311: W/System.err(6141): at
android.app.ActivityThread.main(ActivityThread.java:4945)
08-18 21:55:29.311: W/System.err(6141): at
java.lang.reflect.Method.invokeNative(Native Method)
08-18 21:55:29.311: W/System.err(6141): at
java.lang.reflect.Method.invoke(Method.java:511)
08-18 21:55:29.311: W/System.err(6141): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
08-18 21:55:29.311: W/System.err(6141): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
08-18 21:55:29.311: W/System.err(6141): at dalvik.system.NativeStart.main(Native
Method)
在模拟器中,Logcat将显示:
08-18 22:19:25.144: I/Choreographer(1290): Skipped 67 frames! The application may be
doing too much work on its main thread.
但它继续像往常一样工作。 我已经开始使用AsyncTask但我不确定如何使用它。如有任何帮助,将不胜感激。
答案 0 :(得分:0)
我在保罗的帮助下弄清楚了。在升级到ICE 4.0.x之前,我不得不在代码中调整屏幕大小为960x540分辨率的按钮,因为没有该屏幕尺寸的布局。显然,当我将手机升级到ICE(Evo 3D)时,ICE使用的布局-sw360dp布局为960x540,而不是什么都没有。将其添加到布局列表并输入活动的更正ID ID后,它会起作用。