程序崩溃怎么办?

bestzyed 2017-11-01 02:20:46
要实现图片的上下张翻页,代码如下,但是一运行程序就奔溃了:
package com.example.administrator.lab41;

import android.support.v7.app.AppCompatActivity;
import android.media.Image;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.view.View.OnClickListener;
import android.app.Activity;

public class MainActivity extends AppCompatActivity {

ImageView img;
Button btn_last,btn_next;

private int[] imgs={
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4,
};
int index=1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btn_last=(Button)findViewById(R.id.btn_last);
btn_next=(Button)findViewById(R.id.btn_next);
btn_last.setOnClickListener(new mClick());
btn_next.setOnClickListener(new mClick());

}
class mClick implements OnClickListener
{
public void onClick(View v)
{
if(v==btn_last)
{
if(index>0&&index<imgs.length)
{
index--;
img.setImageResource(imgs[index]);
}else {index=imgs.length-1;}
}
if(v==btn_next)
{
if(index>0&&index<imgs.length-1)
{
index++;
img.setImageResource(imgs[index]);
}else {index=1;}
}
}
}
}

...全文
383 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
东山少爷猪头 2017-11-03
  • 打赏
  • 举报
回复
引用 10 楼 bestzyed 的回复:
[quote=引用 8 楼 YXTS122的回复:]能把你的这个项目发到我的邮箱1444089871@qq.com我看看 。。。
也不知道是什么原因,图片超过一m,运行到那里就会奔溃,我换了图片就没问题了。[/quote] 1M?! 会OOM的,建议你了解一下android显示图片的原理.最好用Picasso或者UIL之类的第三方显示图片的控件,他们可以更好更方便的处理显示图片并且避免OOM.
zhouxiaojie_csdn 2017-11-03
  • 打赏
  • 举报
回复
nu l l
bestzyed 2017-11-02
  • 打赏
  • 举报
回复
引用 8 楼 YXTS122的回复:
能把你的这个项目发到我的邮箱1444089871@qq.com我看看 。。。
也不知道是什么原因,图片超过一m,运行到那里就会奔溃,我换了图片就没问题了。
guyunke123 2017-11-02
  • 打赏
  • 举报
回复
null指针,有变量没赋值吧
ghostgoodbye 2017-11-02
  • 打赏
  • 举报
回复
引用 10 楼 bestzyed 的回复:
[quote=引用 8 楼 YXTS122的回复:]能把你的这个项目发到我的邮箱1444089871@qq.com我看看 。。。
也不知道是什么原因,图片超过一m,运行到那里就会奔溃,我换了图片就没问题了。[/quote] 图片不能用太大,容易造成out of memory
YXTS122 2017-11-02
  • 打赏
  • 举报
回复
能把你的这个项目发到我的邮箱1444089871@qq.com我看看 。。。
bestzyed 2017-11-01
  • 打赏
  • 举报
回复
引用 5 楼 江三沐洛的回复:
[quote=引用 4 楼 bestzyed 的回复:] [quote=引用 2 楼 江三沐洛的回复:]ImageView img; 没有赋值,为null
赋值为null还是奔溃啊。。。[/quote] 。。。。。。 img = (ImageView) findViewById(R.id.img); id后面跟你在xml文件定义的那个[/quote] 我找到问题了,原来是图片太大了,我换了张小的图片就没问题了。
bestzyed 2017-11-01
  • 打赏
  • 举报
回复
引用 5 楼 江三沐洛的回复:
[quote=引用 4 楼 bestzyed 的回复:] [quote=引用 2 楼 江三沐洛的回复:]ImageView img; 没有赋值,为null
赋值为null还是奔溃啊。。。[/quote] 。。。。。。 img = (ImageView) findViewById(R.id.img); id后面跟你在xml文件定义的那个[/quote] 这个我改了,但还是奔溃。。。
江三木洛 2017-11-01
  • 打赏
  • 举报
回复
引用 4 楼 bestzyed 的回复:
[quote=引用 2 楼 江三沐洛的回复:]ImageView img; 没有赋值,为null
赋值为null还是奔溃啊。。。[/quote] 。。。。。。 img = (ImageView) findViewById(R.id.img); id后面跟你在xml文件定义的那个
bestzyed 2017-11-01
  • 打赏
  • 举报
回复
引用 2 楼 江三沐洛的回复:
ImageView img; 没有赋值,为null
赋值为null还是奔溃啊。。。
jacky198554 2017-11-01
  • 打赏
  • 举报
回复
很明显是空指针调用导致的程序崩溃,看看MainActivity.java文件45行是什么代码,是不是缺少容错。
江三木洛 2017-11-01
  • 打赏
  • 举报
回复
ImageView img; 没有赋值,为null
bestzyed 2017-11-01
  • 打赏
  • 举报
回复
Log Cat 如下: Process: com.example.administrator.lab41, PID: 7499 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference at com.example.administrator.lab41.MainActivity$mClick.onClick(MainActivity.java:45) at android.view.View.performClick(View.java:5610) at android.view.View$PerformClick.run(View.java:22265) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:75

80,351

社区成员

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

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