工作中时刻更新。。。
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{ ... } 中加入这两句就可以了
- android {
- ......
- aaptOptions.cruncherEnabled = false
- aaptOptions.useNewCruncher = false
- ......
- }
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)了。
我们知道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; }