其他分享
首页 > 其他分享> > “XXX停止运行”问题解决

“XXX停止运行”问题解决

作者:互联网

关于手机PDA换了型号导致APP部分按钮点击闪退的问题

前段时间工作上遇到一个问题,过去了几个星期了,一直没时间整理,今天得空记录一下。
问题是关于公司上古流传下来的一个陈旧的项目,同事换了其他厂家的手机PDA后使用,并且android版本从原来的4.3.1变成4.4.4后,APP出现闪退的问题,点击其中部分按钮就会弹出“XXapp停止运行”的提醒,我需要查找原因解决这个问题,LogCat报以下异常:
在这里插入图片描述
在这里插入图片描述

解决问题的心路历程

问题到我手上的时候,唯一传达到的信息就是扫描头调用有问题,android版本升级导致app版本不匹配,不知道这是老大的预判还是前开发者给出的反馈。到我手上后首先在adt-bundle(虽然这个IDE有点过时,现在都使用Android Studio的多,不过确实很好用,不用过多配置打开eclipse就可以用起来,如果要使用模拟器,无非是多下载一个相应版本的system-image和platforms放在sdk中)上把项目跑起来。

	private ScanManager mScanManager;
	private SoundPool soundpool = null;
	
	@Override
	protected void onResume() {
		super.onResume();
		initScan();
		IntentFilter filter = new IntentFilter();
		filter.addAction(SCAN_ACTION);
		registerReceiver(mScanReceiver, filter);
	}
	private void initScan() {
		mScanManager = new ScanManager();
		mScanManager.openScanner();
		soundpool = new SoundPool(1, AudioManager.STREAM_NOTIFICATION, 100); // MODE_RINGTONE
		soundid = soundpool.load("/etc/Scan_new.ogg", 1);
	}

所以是initScan()中调用了一些新PDA没有的硬件,比如上面的ScanManager和SoundPool,把调用initScan()部分注释掉,再运行居然就可以正常跳转了,天哪,一把辛酸泪!!!不过,当跳转到新页面后使用扫描功能时,还是会发生闪退的异常,不过这次只是跳回主界面,而没有使得APP强制停止运行。好的,现在思路终于基本清晰了,主要就是硬件不同的问题,和android版本,代码逻辑,jar包都没有太大关系。观察扫描接收器:

	private BroadcastReceiver mScanReceiver = new BroadcastReceiver() {

		@Override
		public void onReceive(Context context, Intent intent) {
			isScaning = false;
			soundpool.play(soundid, 1, 1, 0, 0, 1);

			byte[] barocode = intent.getByteArrayExtra("barocode");
			byte[] barcode = intent.getByteArrayExtra("barcode");
			int barocodelen = intent.getIntExtra("length", 0);
			byte temp = intent.getByteExtra("barcodeType", (byte) 0);
			barcodeStr = new String(barcode, 0, barocodelen);// 扫描返回数据
			((EditText) findViewById(R.id.txtScan)).setText(barcodeStr);
			// 处理扫描到的数据
			addData(barcodeStr);
		}
	};

这就是很简单的一个接收广播数据字段的receiver,只是目前的扫描都是通过代码来调用扫描头,而新机子是直接配置了按键的,和老机子的操作方式不同,Ok,立马改代码,只要把调用扫描头的代码注释掉,然后广播名称等换成新机子的action名称,在OnCreate()中注册广播。
三下五除二,点击运行,手都是颤抖的,跳转页面,扫描都正常了,终于成功啦!好想哭,花了我大概两周时间哪,像一只无头苍蝇到处乱转!

总结

这是我第一次实战去解决一个android的问题,之前只是看了一点书,没有做过相关的实际意义上的开发。过程中心情焦虑,仿徨,因为不知道最后是否真的可以解决,虽然走了很多弯路,最后总算功夫不负有心人吧,下面是对自己的一个总结:
1.遇到问题一定要有自己的主线的判断;
2.当在同一个问题上花了太多时间时,可以去质疑一切,并且大胆去执行,做任何的努力都比自己闭门造车强,特别是要和外界尽量建立多的连接,才能有新的收获;
3.能发现关键问题的人真的很牛逼,希望自己在慢慢积累过程中也能成为一个融会贯通的人。

标签:XXX,扫描,问题,停止,跳转,new,机子,运行,页面
来源: https://blog.csdn.net/weixin_35786895/article/details/106814546