下面这个程序是实现一个activity调用另一个activity,程序编译无错,运行时报错:The application ex12(process ex12)
has stop unexpectedly.Please try again
我后来把wipe user data选中,或者关了eclipse重开,依然是报这个错,其它程序是好的,所以也不是配置问题,帮忙找找错误吧,另外我想问下,这个android的错误提示怎么这么模糊,就一个stop unexpectedly,没有具体的错误提示吗?还是我没找到?程序如下:ex12.java
package com.misoo.ex12;import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;public class ex12 extends Activity {
private final int WC = LinearLayout.LayoutParams.WRAP_CONTENT;
private LinearLayout layout;
private LinearLayout.LayoutParams para;
static final int RG_REQUEST = 0;
private int mColor = Color.YELLOW;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
para = new LinearLayout.LayoutParams(230, 140);
DrawView dv = new DrawView(this);
layout.addView(dv, para);
Button btn = new Button(this);
btn.setText("Change Color"); btn.setOnClickListener(listener);
para = new LinearLayout.LayoutParams(WC, WC);
layout.addView(btn, para);
setContentView(layout);
}
public int getColor() {
return mColor;
}
private OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
Intent in = new Intent(ex12.this, rgActivity.class);
startActivityForResult(in,RG_REQUEST);
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RG_REQUEST) {
if (resultCode == RESULT_CANCELED)
setTitle("Canceled...");
else if(resultCode == RESULT_OK) {
String data_str = (String)data.getCharSequenceExtra("DataKey");
setTitle(data_str);
if(data_str.contains("Y"))
mColor = Color.YELLOW;
else
mColor = Color.BLUE;
}
}
}
}DrawView.javapackage com.misoo.ex12;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;public class DrawView extends View {
private Paint pa;
private Context ctx;
public DrawView(Context context) {
super(context);
ctx = context; pa = new Paint();
}
@Override
protected void onDraw(Canvas canvas) {
ex12 obj = (ex12)ctx;
pa.setColor(obj.getColor()); canvas.drawRect(10, 10, 100, 100, pa);
pa.setColor(Color.GREEN);
pa.setStrokeWidth(4);
pa.setStrokeCap(Paint.Cap.ROUND);
canvas.drawLine(10, 55, 100, 55, pa); canvas.drawLine(55, 10, 55, 100, pa);
pa.setColor(Color.RED);
canvas.drawRect(50, 50, 60, 60, pa);
}
}rgActivity.java
package com.misoo.ex12;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;public class rgActivity extends Activity implements OnCheckedChangeListener{
private final int WC = RadioGroup.LayoutParams.WRAP_CONTENT;
private RadioGroup rg_layout;
RadioGroup.LayoutParams params;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
rg_layout = new RadioGroup(this);
params = new RadioGroup.LayoutParams(WC, WC);
rg_layout.setOrientation(RadioGroup.VERTICAL);
rg_layout.setLayoutParams(params);
rg_layout.setOnCheckedChangeListener(this);
RadioButton button1 = new RadioButton(this);
button1.setText("Yellow");
button1.setId(1001);
params = new RadioGroup.LayoutParams(WC, WC);
rg_layout.addView(button1,params);
RadioButton button2 = new RadioButton(this);
button2.setText("Blue");
button2.setId(1002);
params = new RadioGroup.LayoutParams(WC, WC);
rg_layout.addView(button2,params);
setContentView(rg_layout);
}
public void onCheckedChanged(RadioGroup arg0, int arg1) {
String cc;
if(arg0.getCheckedRadioButtonId() == 1001) cc = "Y";
else cc = "B";
Bundle bundle = new Bundle();
bundle.putString("DataKey", cc);
Intent mIntent = new Intent();
mIntent.putExtras(bundle);
setResult(RESULT_OK, mIntent);
finish();
}
}
has stop unexpectedly.Please try again
我后来把wipe user data选中,或者关了eclipse重开,依然是报这个错,其它程序是好的,所以也不是配置问题,帮忙找找错误吧,另外我想问下,这个android的错误提示怎么这么模糊,就一个stop unexpectedly,没有具体的错误提示吗?还是我没找到?程序如下:ex12.java
package com.misoo.ex12;import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;public class ex12 extends Activity {
private final int WC = LinearLayout.LayoutParams.WRAP_CONTENT;
private LinearLayout layout;
private LinearLayout.LayoutParams para;
static final int RG_REQUEST = 0;
private int mColor = Color.YELLOW;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
para = new LinearLayout.LayoutParams(230, 140);
DrawView dv = new DrawView(this);
layout.addView(dv, para);
Button btn = new Button(this);
btn.setText("Change Color"); btn.setOnClickListener(listener);
para = new LinearLayout.LayoutParams(WC, WC);
layout.addView(btn, para);
setContentView(layout);
}
public int getColor() {
return mColor;
}
private OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
Intent in = new Intent(ex12.this, rgActivity.class);
startActivityForResult(in,RG_REQUEST);
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RG_REQUEST) {
if (resultCode == RESULT_CANCELED)
setTitle("Canceled...");
else if(resultCode == RESULT_OK) {
String data_str = (String)data.getCharSequenceExtra("DataKey");
setTitle(data_str);
if(data_str.contains("Y"))
mColor = Color.YELLOW;
else
mColor = Color.BLUE;
}
}
}
}DrawView.javapackage com.misoo.ex12;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;public class DrawView extends View {
private Paint pa;
private Context ctx;
public DrawView(Context context) {
super(context);
ctx = context; pa = new Paint();
}
@Override
protected void onDraw(Canvas canvas) {
ex12 obj = (ex12)ctx;
pa.setColor(obj.getColor()); canvas.drawRect(10, 10, 100, 100, pa);
pa.setColor(Color.GREEN);
pa.setStrokeWidth(4);
pa.setStrokeCap(Paint.Cap.ROUND);
canvas.drawLine(10, 55, 100, 55, pa); canvas.drawLine(55, 10, 55, 100, pa);
pa.setColor(Color.RED);
canvas.drawRect(50, 50, 60, 60, pa);
}
}rgActivity.java
package com.misoo.ex12;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;public class rgActivity extends Activity implements OnCheckedChangeListener{
private final int WC = RadioGroup.LayoutParams.WRAP_CONTENT;
private RadioGroup rg_layout;
RadioGroup.LayoutParams params;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
rg_layout = new RadioGroup(this);
params = new RadioGroup.LayoutParams(WC, WC);
rg_layout.setOrientation(RadioGroup.VERTICAL);
rg_layout.setLayoutParams(params);
rg_layout.setOnCheckedChangeListener(this);
RadioButton button1 = new RadioButton(this);
button1.setText("Yellow");
button1.setId(1001);
params = new RadioGroup.LayoutParams(WC, WC);
rg_layout.addView(button1,params);
RadioButton button2 = new RadioButton(this);
button2.setText("Blue");
button2.setId(1002);
params = new RadioGroup.LayoutParams(WC, WC);
rg_layout.addView(button2,params);
setContentView(rg_layout);
}
public void onCheckedChanged(RadioGroup arg0, int arg1) {
String cc;
if(arg0.getCheckedRadioButtonId() == 1001) cc = "Y";
else cc = "B";
Bundle bundle = new Bundle();
bundle.putString("DataKey", cc);
Intent mIntent = new Intent();
mIntent.putExtras(bundle);
setResult(RESULT_OK, mIntent);
finish();
}
}
10-21 02:44:48.455: DEBUG/AndroidRuntime(728): Shutting down VM
10-21 02:44:48.481: WARN/dalvikvm(728): threadid=3: thread exiting with uncaught exception (group=0x4000fe70)
10-21 02:44:48.481: ERROR/AndroidRuntime(728): Uncaught handler: thread main exiting due to uncaught exception
10-21 02:44:48.597: ERROR/AndroidRuntime(728): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.droiddraw/com.droiddraw.rgActivity}; have you declared this activity in your AndroidManifest.xml?
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1480)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1454)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.app.Activity.startActivityForResult(Activity.java:2656)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at com.droiddraw.droiddrawTest$1.onClick(droiddrawTest.java:118)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.view.View.performClick(View.java:2179)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.view.View.onTouchEvent(View.java:3828)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.widget.TextView.onTouchEvent(TextView.java:6291)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.view.View.dispatchTouchEvent(View.java:3368)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1707)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1197)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.app.Activity.dispatchTouchEvent(Activity.java:1993)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1691)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.view.ViewRoot.handleMessage(ViewRoot.java:1525)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.os.Handler.dispatchMessage(Handler.java:99)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.os.Looper.loop(Looper.java:123)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at android.app.ActivityThread.main(ActivityThread.java:3948)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at java.lang.reflect.Method.invokeNative(Native Method)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at java.lang.reflect.Method.invoke(Method.java:521)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
10-21 02:44:48.597: ERROR/AndroidRuntime(728): at dalvik.system.NativeStart.main(Native Method)
程序本身没有问题,你忘了在Androidmanifest.xml里面注册你的Activity了在Androidmanifest.xml的<application>下面加上这个就好
<activity android:name="rgActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.SAMPLE_CODE"/>
</intent-filter>
</activity>
每个activity都必须在Androidmanifest里面注册
Window→showView→other→Android→LogCat。
查找类型“E”的输出。
android:label="@string/app_name">
</activity>
什么错误啊? 你在logcat里面看的?
logcat不仅仅是打印你程序的信息,也会打印系统的信息,有些错误不是你程序的错误
只是有没有比较好的办法查看多行显示。
也是可以的,并非一定要加上“.”
当然可以再application处直接点击添加activity