[英]My android app closes unexpectedly. Eclipse says it can't connect to the local host
我正在創建一個android應用程序。 它編譯良好,並且Eclipse不會發現任何錯誤。 但是,當我運行它時,會在堆棧跟蹤中得到它。
<disconnected>DalvikVM[localhost:8639]
這是我的代碼:
package com.warhammerdicerrolleralpha;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
public class myMain extends Activity
{
EditText enternumberofdice;
TextView textGenerateNumber;
int number1;
int number2;
ImageView i;
private EditText text, text2, text3;
private Button btutorial1;
private int myFaceValue;
int myNum;
/**
* Called when the activity is first created.
*
* @return
*/
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textGenerateNumber = (TextView) findViewById(R.id.text4);
number1 = Integer.parseInt(text.getText().toString());
number2 = Integer.parseInt(text2.getText().toString());
ImageView i = new ImageView(this);
i.setAdjustViewBounds(true);
}
public void go()
{
while (myNum > 0)
{
textGenerateNumber.setText(String.valueOf(enternumberofdice));
--myNum;
return;
}
}
public int roll()
{
int val = (int) (6 * Math.random() + 1); // Range 1-6
setValue(val);
return val;
}
{
try
{
myNum = Integer.parseInt(enternumberofdice.getText().toString());
}
catch (NumberFormatException nfe)
{
enternumberofdice.setText("Does not work");
}
}
public int getValue()
{
return myFaceValue;
}
public void setValue(int myFaceValue)
{
this.myFaceValue = myFaceValue;
}
{
switch (myFaceValue)
{
case 5:
i.setImageResource(R.drawable.dicefive);
break;
case 1:
i.setImageResource(R.drawable.diceone);
break;
case 3:
i.setImageResource(R.drawable.dicethree);
break;
case 2:
i.setImageResource(R.drawable.dicetwo);
break;
case 4:
i.setImageResource(R.drawable.dicefour);
break;
case 6:
i.setImageResource(R.drawable.dicesix);
break;
default:
i.setImageResource(R.drawable.error);
break;
}
text = (EditText) findViewById(R.id.editText1);
text2 =(EditText) findViewById(R.id.editText2);
text3 = (EditText) findViewById(R.id.editText3);
btutorial1 = (Button) findViewById(R.id.button1);
btutorial1.setOnClickListener((OnClickListener) this);
Button buttonGenerate = (Button) findViewById(R.id.button1);
enternumberofdice = (EditText) findViewById(R.id.enternumberofdice);
Button buttonGenerate2 = (Button) findViewById(R.id.battlecalculate);
buttonGenerate2.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
setContentView(R.layout.main2);
}
});
buttonGenerate.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
go();
roll();
}
});
}
public void onClick(View view)
{
switch (view.getId())
{
case R.id.button1:
if (number1 > number2)
{
text3.setText("Three and above");
return;
}
else if (number1 < number2)
{
text3.setText("Five and above");
return;
}
else if (number1 == number2)
{
text3.setText("Four and above");
return;
}
else
{
text3.setText("Not Working");
return;
}
}
}
}
PS如何將xml代碼添加到帖子中。 當我在自己的帖子中添加xml代碼時,它不會出現在預覽頁面中。
這是我的堆棧跟蹤。
DalvikVM [本地主機:8695]
線程[<1> main](已暫停(RuntimeException異常))
ActivityThread.performLaunchActivity(ActivityThread $ ActivityRecord,Intent)行:2585
ActivityThread.handleLaunchActivity(ActivityThread $ ActivityRecord,Intent)行:2679
ActivityThread.access $ 2300(ActivityThread,ActivityThread $ ActivityRecord,Intent)行:125 ActivityThread $ H.handleMessage(Message)行:2033
ActivityThread $ H(Handler).dispatchMessage(Message)行:99 Looper.loop()行:123 ActivityThread.main(String [])行:4627
Method.invokeNative(Object,Object [],Class,Class [],Class,int,boolean)行:不可用[本機方法]
Method.invoke(Object,Object ...)第521行
ZygoteInit $ MethodAndArgsCaller.run()行:868
ZygoteInit.main(String [])行:626 NativeStart.main(String [])行:不可用[本機方法]
線程[<6>活頁夾線程#2](正在運行)線程[<5>活頁夾線程#1](正在運行)
您必須在onCreate
方法中調用setContentView
之后完成對類級變量的初始化,例如textGenerateNumber
。
更新:重組代碼,您應該具有以下內容。 但是,由於尚未初始化text
和text2
變量,因此number1
和number2
分配沒有意義。
....
EditText enternumberofdice;
TextView textGenerateNumber;
private EditText text, text2, text3;
private Button btutorial1;
int number1;
int number2;
ImageView i;
private int myFaceValue;
int myNum;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textGenerateNumber = (TextView) findViewById(R.id.text4);
//BUG: will fail since text/text2 isn't initialized
//number1 = Integer.parseInt(text.getText().toString());
//number2 = Integer.parseInt(text2.getText().toString());
i = new ImageView(this);
i.setAdjustViewBounds(true);
}
final TextView textGenerateNumber = (TextView) findViewById(R.id.text4);
在onCreate
方法之前運行,因此您的視圖尚不存在。 在調用setContentView()
之后,添加所有代碼以檢索視圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.