android异常汇总

工作中时刻更新。。。

1、Error:java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:


错误:Error:Execution failed for task ':app:mergeDebugResources'. > Error: Java .util.concurrent.ExecutionException: com. Android .ide.common.process.ProcessException:

出现错误的原因是:Androidstudio严格审查png图片,就是png没有达到Androidstudio的要求

注:最重要的就是.9图要严格要求做好

解决:拉伸.9图片,或者

在gradle的android{ ... } 中加入这两句就可以了

  1. android {  
  2.       
  3.    ......  
  4.   
  5.     aaptOptions.cruncherEnabled = false  
  6.     aaptOptions.useNewCruncher = false  
  7.   
  8.    ......  
  9. }  


2、android.view.WindowLeaked:

产生原因:
我们知道Android的每一个Activity都有个WindowManager窗体管理器,同样,构建在某个Activity之上的对话框、PopupWindow也有相应的WindowManager窗体管理器。因为对话框、PopupWindown不能脱离Activity而单独存在着,所以当某个Dialog或者某个PopupWindow正在显示的时候我们去finish()了承载该Dialog(或PopupWindow)的Activity时,就会抛Window Leaked异常了,因为这个Dialog(或PopupWindow)的WindowManager已经没有谁可以附属了,所以它的窗体管理器已经泄漏了。


解决方法:
关闭(finish)某个Activity前,要确保附属在上面的Dialog或PopupWindow已经关闭(dismiss)了。


3.java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:xxxxxxxxxxx flg=0x10000000 cmp=com.android.server.telecom/.components.UserCallActivity } from ProcessRecord{35544cc 25269:com.cont.hlymanage/u0a302} (pid=25269, uid=10302) with revoked permission android.permission.CALL_PHONE


AlertDialog.Builder alertDialog = DialogFactory.getInstance().getAlertDialog(getView().getActivity());
alertDialog.setTitle("联系方式")
        .setPositiveButton("拨打电话", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+phonenum));
        getView().getActivity().startActivity(intent);
    }
}).setNegativeButton("发送短信", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"+phonenum));
        getView().startActivity(intent);
    }
}).show();
在一个fragment中的代码,问题是发短信可以,getview.getactivity和getview区别是什么
直接添加
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
发现弹出异常,
需要手动获取权限

3、6.0,7.0的区别

目前发现,在创建文件夹的时候,6.0必须手动申请权限,7.0就不需要
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE_FOR_TAKE_PHOTO);
在调用系统照相功能的时候,都需要申请权限,类似如上,而且7.0在调用的时候需要fileProvider
详见:http://blog.youkuaiyun.com/androidwubo/article/details/74910021

4、类型转换异常

通过gson转换list的时候,在网上找到一种方法,可以转换latlng格式的list
public static <T> List<T> getObjectList(String jsonString,Class<T> cls){
    List<T> list = new ArrayList<T>();
    try {
        Gson gson = new Gson();
        JsonArray arry = new JsonParser().parse(jsonString).getAsJsonArray();
        for (JsonElement jsonElement : arry) {
            list.add(gson.fromJson(jsonElement, cls));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return list;
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值