模拟器提示Unfortunately,Activity has stopped.

psp0215 2013-03-22 09:05:15
刚开始学习安卓开发,对着书上到一个简单例子写了一遍,结果用模拟器运行到时候,总是提示Unfortunately,Activity has stopped.,代码很少,希望知道到能帮助解决一下,不胜感激。
第一段代码MyView.java
package picksomething.activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class MyView extends View{
Paint paint;
public MyView(Context context){
super(context);
paint.setColor(Color.WHITE);
paint.setTextSize(20);
paint.setAntiAlias(true);
}
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
canvas.drawColor(Color.GRAY);
canvas.drawRect(10, 10, 110, 110, paint);
canvas.drawText("此界面为自定义的View", 60, 170, paint);
}

}

第二段代码ActivityDemo.java
package picksomething.activity;


import android.os.Bundle;
import android.app.Activity;

public class ActivityDemo extends Activity {

MyView myView = new MyView(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(myView);
}

}

就这两个java文件,因为没有设计到布局文件,就不用贴布局文件了吧,项目名是Activity,用模拟器运行到时候总是提示Unfortunately,Activity has stopped.
...全文
15620 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2015-09-30
  • 打赏
  • 举报
回复
引用 24 楼 u013743168 的回复:
[quote=引用 17 楼 crazyman28 的回复:] [quote=引用 16 楼 flyking247 的回复:] 分析了一下知道源因了:onCreate()函数在activity对象的构造函数调用前运行的,这个时候对象还没有创建,所以myView 指向null,是不能引用的,所以要在引用之前给他初始化,也就是再this.setContentView(myView);之前!
谢谢!!!我想了半天还是没结果,最后靠着你的做法解决了[/quote]亲,我先声明再显示怎么还是不行啊[/quote] 我是新手,也遇到了,已解决,给需要的人参考 Paint paint = new Paint(); 谢谢 http://www.th7.cn/Program/Android/201407/246852.shtml
灯火下的行人 2014-11-14
  • 打赏
  • 举报
回复
引用 17 楼 crazyman28 的回复:
[quote=引用 16 楼 flyking247 的回复:] 分析了一下知道源因了:onCreate()函数在activity对象的构造函数调用前运行的,这个时候对象还没有创建,所以myView 指向null,是不能引用的,所以要在引用之前给他初始化,也就是再this.setContentView(myView);之前!
谢谢!!!我想了半天还是没结果,最后靠着你的做法解决了[/quote]亲,我先声明再显示怎么还是不行啊
灯火下的行人 2014-11-14
  • 打赏
  • 举报
回复
code_guy 2014-08-31
  • 打赏
  • 举报
回复
权限SEND_SMS
u010345130 2014-06-30
  • 打赏
  • 举报
回复
我也遇到了 都说在AndroidMenifest.xml中,但是不知道怎么改
dragon007_ 2014-06-06
  • 打赏
  • 举报
回复
引用
谢谢!!!我想了半天还是没结果,最后靠着你的做法解决了
具体解决方法是什么? 我也是初学者
沧海龙腾 2014-04-25
  • 打赏
  • 举报
回复
沧海龙腾 2014-04-25
  • 打赏
  • 举报
回复
我也是初学者,遇到过类似问题。在AndroidManifest.xml文件中修改一下
expiator 2014-04-17
  • 打赏
  • 举报
回复
引用 16 楼 flyking247 的回复:
分析了一下知道源因了:onCreate()函数在activity对象的构造函数调用前运行的,这个时候对象还没有创建,所以myView 指向null,是不能引用的,所以要在引用之前给他初始化,也就是再this.setContentView(myView);之前!
谢谢!!!我想了半天还是没结果,最后靠着你的做法解决了
flyking247 2014-01-06
  • 打赏
  • 举报
回复
分析了一下知道源因了:onCreate()函数在activity对象的构造函数调用前运行的,这个时候对象还没有创建,所以myView 指向null,是不能引用的,所以要在引用之前给他初始化,也就是再this.setContentView(myView);之前!
flyking247 2014-01-06
  • 打赏
  • 举报
回复
把 MyView myView = new MyView(this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(myView); } 改为: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MyView myView = new MyView(this); this.setContentView(myView); } 就ok了,目前不知道是为什么,我也刚开始学android!
psp0215 2013-03-30
  • 打赏
  • 举报
回复
引用 12 楼 intuition444 的回复:
paint 你都没有new呢还
这一点我试过了,也不行。
csdn_2013 2013-03-30
  • 打赏
  • 举报
回复
引用 13 楼 psp0215 的回复:
引用 12 楼 intuition444 的回复: paint 你都没有new呢还 这一点我试过了,也不行。
将super(context); 放到方法的最后一行 并且将paint 初始化一下~
psp0215 2013-03-29
  • 打赏
  • 举报
回复
引用 9 楼 ConnectionUtils 的回复:
引用 7 楼 psp0215 的回复:额,上面的方法都试过了,为什么还是不行。我贴一下logcat里面到错误提示,再贴一下AndroidManifest.xml文件,大家帮帮看看。 这个是错误信息。 Plain Text code ? 123456789101112131415161718192021222324252627282930 ……
这句去掉会提示错误
psp0215 2013-03-29
  • 打赏
  • 举报
回复
引用 8 楼 ConnectionUtils 的回复:
引用 7 楼 psp0215 的回复:额,上面的方法都试过了,为什么还是不行。我贴一下logcat里面到错误提示,再贴一下AndroidManifest.xml文件,大家帮帮看看。 这个是错误信息。 Plain Text code ? 123456789101112131415161718192021222324252627282930 ……
额,还是不行。
intuition444 2013-03-29
  • 打赏
  • 举报
回复
paint 你都没有new呢还
csdn_2013 2013-03-26
  • 打赏
  • 举报
回复
引用 7 楼 psp0215 的回复:
额,上面的方法都试过了,为什么还是不行。我贴一下logcat里面到错误提示,再贴一下AndroidManifest.xml文件,大家帮帮看看。 这个是错误信息。 Plain Text code ? 123456789101112131415161718192021222324252627282930 03-25 13:15:26.109: E/Trace(937)……
清单文件 <activity android:name="picksomething.activity.ActivityDemo" 需要改成 <activity android:name="ActivityDemo"
csdn_2013 2013-03-26
  • 打赏
  • 举报
回复
引用 7 楼 psp0215 的回复:
额,上面的方法都试过了,为什么还是不行。我贴一下logcat里面到错误提示,再贴一下AndroidManifest.xml文件,大家帮帮看看。 这个是错误信息。 Plain Text code ? 123456789101112131415161718192021222324252627282930 03-25 13:15:26.109: E/Trace(937)……
并且将MyView(Context context)中的super(context); 去除
psp0215 2013-03-25
  • 打赏
  • 举报
回复
引用 2 楼 cuit 的回复:
<activity android:name=".VirtualSkiInstructor"> </activity>
谢谢指点,请问加哪里,是加到AndroidManifest.xml那个文件中吗
psp0215 2013-03-25
  • 打赏
  • 举报
回复
引用 1 楼 Ada168855 的回复:
把LogCat上面的信息贴出来看看
不好意思,这两天有事,我明天就贴。
加载更多回复(5)

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧