android测试空指针什么意思,Android神秘的空指针异常

由于我已经上传我的应用程序,我收到了很多java.lang.NullPointerException崩溃报告。我很努力地理解这个问题,因为它不会在模拟器或我亲自测试的物理设备上崩溃。以下是其中一个报告的示例:

java.lang.IllegalStateException: Could not execute method of the activity

at android.view.View$1.onClick(View.java:2072)

at android.view.View.performClick(View.java:2408)

at android.view.View$PerformClick.run(View.java:8817)

at android.os.Handler.handleCallback(Handler.java:587)

at android.os.Handler.dispatchMessage(Handler.java:92)

at android.os.Looper.loop(Looper.java:143)

at android.app.ActivityThread.main(ActivityThread.java:4914)

at java.lang.reflect.Method.invokeNative(Native Method)

at java.lang.reflect.Method.invoke(Method.java:521)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

at dalvik.system.NativeStart.main(Native Method)

Caused by: java.lang.reflect.InvocationTargetException

at com.bryan.barrett.countdownforandroid.practiceSubscreen.openNumbersSelect(Unknown Source)

at java.lang.reflect.Method.invokeNative(Native Method)

at java.lang.reflect.Method.invoke(Method.java:521)

at android.view.View$1.onClick(View.java:2067)

... 11 more

Caused by: java.lang.NullPointerException

... 15 more当'openNumbersSelect'按钮被按下时,我认为这会在'practiceSubscreen'中崩溃。这是我的那个按钮的一段代码:

public void openNumbersSelect(View view){

Intent iNum = new Intent(this, numbersSelect.class);

String gamemode = "practice"; //practice mode

iNum.putExtra("gamemode", gamemode);

startActivity(iNum);

overridePendingTransition(R.anim.fadein, R.anim.fadeout);

if(sound){

soundPool.play(Main.SNDclick, audio.getStreamVolume(AudioManager.STREAM_MUSIC),

audio.getStreamVolume(AudioManager.STREAM_MUSIC), 1, 0, 1f);

}

}这是以下numberSelect类中的onCreate代码,它打算打开:

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_numbers_select);

Intent i = getIntent();

gamemode = i.getStringExtra("gamemode");

gameround = i.getIntExtra("gameround", 0) + 1;

points = i.getIntExtra("points", 0);

//Shared Preferences

prefs = PreferenceManager.getDefaultSharedPreferences(this);

sound = prefs.getBoolean("sound", true);

//Sounds

setVolumeControlStream(AudioManager.STREAM_MUSIC);

audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

soundPool = Main.soundPool;

//Big Numbers

for (int n=25; n<=100; n+=25){ //add 25, 50, 75, 100

bignumbers.add(n);

}

//Small Numbers

for (int m=1; m<=10; m++){ //adds 1-10 twice

smallnumbers.add(m);

smallnumbers.add(m);

}

//Screen metrics

DisplayMetrics metrics = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(metrics);

int screenw = metrics.widthPixels; int screenh = metrics.heightPixels;

int unitw = (screenw/14); int unith = (screenh/40); //divide screen into 14 columns x 40 rows...

num1 = (Button)findViewById(R.id.num1img); nums.add(num1);

num2 = (Button)findViewById(R.id.num2img); nums.add(num2);

num3 = (Button)findViewById(R.id.num3img); nums.add(num3);

num4 = (Button)findViewById(R.id.num4img); nums.add(num4);

num5 = (Button)findViewById(R.id.num5img); nums.add(num5);

num6 = (Button)findViewById(R.id.num6img); nums.add(num6);

for(int n=0; n<6; n++){

nums.get(n).setHeight(screenh/4); nums.get(n).setTextSize(Main.fontSize);

nums.get(n).setWidth(screenw/6); nums.get(n).setPadding(1, 1, 1, 1);

}

lrg = (Button)findViewById(R.id.largebutton); lrg.setWidth((unitw*200)/35);

sml = (Button)findViewById(R.id.smallbutton); sml.setWidth((unitw*200)/35);

Typeface scribble = Typeface.createFromAsset(getAssets(), "fonts/scribble.ttf");

TextView numbersSeltext = (TextView)findViewById(R.id.numbersSeltext);

numbersSeltext.setTypeface(scribble);

numbersSeltext.setWidth(screenw); numbersSeltext.setHeight(unith*8);

if(gamemode.equals("full")){

numbersSeltext.setText("Round " + gameround + ": Select 6 Numbers");

}

}如果任何人可以摆脱这一点,将不胜感激!这是一个令人沮丧的问题,因为它在我已经测试过的设备上完美工作,并且它似乎可以在许多基于反馈的设备上正常工作,因此我甚至不知道代码是否存在问题,或者某些设备是建立..我可以抛出更多的崩溃报告或代码,如果需要的话!

提前致谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值