Android 开发学习进程0.22 android 少见的报错问题

Android 特殊报错

   Android 有时会出现一些比较少见的出错原因,大致有权限问题,版本问题等。类别和解决方式见下文。

7.0 context启动activity问题

错误提示:

04-09 15:55:08.165: E/AndroidRuntime(3403): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

问题在于activity方法startActivity() 和context的方法startActivity()的不同,在7.0下的部分机型中使用context启动activity的方法需要添加flag.NET_TASK即在intent添加flag属性,如下代码
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
但在一些intent中使用了Intent.createChooser()的方法中,即使是7.0以上 的机型也会崩溃,因此也需要添加上面的的代码。但形式为:
Utils.getContext().startActivity(Intent.createChooser(shareIntent, "分享到").addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
具体原因为createChooser仅传递intent,没有拿到flag。

Android 本地化问题

   Android本地化即使用不同种类的string.xml文件,达到多语言的效果,但我们并不能手动翻译,工作量太大,但Androidstudio上有很多提供的翻译插件可以实现一键多语种string文件生成的效果,作者使用的为AndroidLocalizer 直接在插件市场搜索即可,需要注意的是部分插件仅支持谷歌翻译API 而一些国人写的可以支持百度翻译API,在这里需要说明一下,作者在这里浪费了很多时间,申请百度API时,分为普通版和高级版,高级版需要身份证验证,而普通版不需要,但翻译速度和总词数少了一些,但还是够用的,笔者开始使用的是普通版,生成的所有string文件都没有改变,还是原来默认的英文,折腾许久尝试了好几个插件才发现并不是插件的问题,百度普通版的 每秒翻译次数很低,插件获取不到,才出现了超时现象,无奈之下只能将身份证号贱卖给万恶的百度...

一些编译产生的文件无法删除

具体报错可能为: unable to delete directory build。上次产生的编译文件无法删除导致报错,这种可以删除缓存重启,如果是window 也可以尝试使用命令 : taskkill /F /IM java.exe终止Java进程。

posted @ 2020-09-20 23:43  百密一疏  阅读(140)  评论(0编辑  收藏  举报