下面是记录的在平时代码编写或编译时的一些异常,答案有自己摸索出来的,也有参考其他程序猿朋友的,参考文章过多,就不一一贴出来了。

I/Choreographer: Skipped 2267 frames! The application may be doing too much

报出这个错误时app一启动要反应很久才会出现页面或者直接死掉,搞得我一脸懵逼。

这个报错有的原因是不一样的,我的是出在我读写文件操作后忘记关闭流造成的,之后可能还会报出System.err: java.io.EOFException这样的异常,这时候是可以查看到报错位置的,找到地方关闭流就正常了。

Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Lcom/lidroid/xutils/task/TaskHandler;

如果你用 Studio开发,并且要用其他项目作为library,这个问题是很容易出现的。出现这个问题的原因是包的重复引用,意思就是在你自己的项目中引用了某个包,而被你作为library的项目也引用了同一个包,就会有这个问题。

你可以直接修改gradle文件,也可以在上图中改,如下图所示:

在gradle文件中改,只需要将compile改成provided就行。

如果直接配置的话,也是一样的,在下拉框中选择provided。这里说明下,你只要改其中一个项目就可以了。

java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to com.example.bean.

造成这种问题的原因是:泛型在编译期类型被擦除导致的,解决方法:
public static <T> List<T> fromJsonArray(String json, Class<T> clazz) throws Exception {
List<T> lst = new ArrayList<T>();

JsonArray array = new JsonParser().parse(json).getAsJsonArray();
for(final JsonElement elem : array){
lst.add(new Gson().fromJson(elem, clazz));
}

return lst;
}

链接:https://www.zhihu.com/question/27216298/answer/47805394

 

Error:Module 'com.github.lecho:hellocharts-library:1.5.8' depends on one or more Android Libraries but is a jar

在使用android studio导入第三方依赖时报这个错,虽然不知道原因,但是加上   @aar 就行了

compile 'com.github.lecho:hellocharts-library:1.5.8@aar'

E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!

系统对Intent传递数据的大小限制, 即传输的图片大小不能超过1M。

② E/NotificationService:android.os.DeadObjectException

说明应用的service已经停止;要么是从操作系统中中断,要么从应用程序中终止;

那么可以在application标签里面添加了一句 android:hardwareAccelerated="false"(禁用硬件加速);

如果加到对应的activity标签里面,那么第一次可以运行完,但一段时间又会出现这个问题;

 Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.

运行Android Studio,一直提示这个错误,这应该是“即时运行”出问题,一个暂时性的解决方案:在Android Studio中的:Preferences(win中对应“Set”)----->Build,Execution,Deployment----->Instant Run,按照下图进行勾选:

不过这应该是即时运行,一种更好的解决问题的办法:菜单栏,Tools -> Adnroid -> enable ADB integration

AAPT err(Facade for 414327768): libpng error: Not a PNG file

 Error:Execution failed for task ':app:mergeDebugResources'. 

   > Crunching Cruncher index_gallery_04.png failed, see logs

  是因为drawable或mipmap文件夹里面有png在预览显示是jpg格式,转过来就行了(可以用Windows自带的画图工具直接将图片另存为png格式)。

有时将以前在Eclipse中写的项目import到android studio中后,出现AAPT err(Facade for 157667509): libpng error: Not a PNG file错误,提示信息显示图片非PNG格式。

解决方法:

在studio中依次点开每个后缀名为png的图片,(如图)

即使图片的后缀名是png,这里会显示真正的格式。找到不符合要求的图片,另存为png格式即可。

(其实我自己用上述方法暂时还未成功,但是觉得也是一些朋友的经验之谈,对于某些来说应该管用,所以先分享出来。。。)

⑤这个装逼让我猝不及防,电脑突然断电,重启后就发现studio项目的所有java文件都报错,且代码错误提示为要“setup JDK”

试过更改环境变量无果,重启studio数次无果,更换buildToolsVersion无果,最后终于找到解决方法:

这样之后就恢复正常了。

AAPT err(Facade for 1807790075): ERROR: 9-patch image E:\app\src\main\res\drawable-hdpi\tabbg.9.png malformed.

AAPT err(Facade for 1807790075):        No marked region found along edge.
AAPT err(Facade for 1807790075):        Found along left edge.

Error:Execution failed for task ':app:mergeDebugResources'.
> Crunching Cruncher tabbg.9.png failed, see logs

像这种报错属于.9图坏点,一般在studio打开以前的eclipse项目时出现,我的处理方法很简单,科不科学不知道,但是很管用。

 

      

先根据报错目录找到报错的那张图,比如左图,报错时一般四个边缘没有下方那种黑点,或者只有一边有,此时只需自己手动在另外几遍描上黑点即可。有时只要画出上下的其中一边和左右的其中一边就行,但依然报错的话就四边都画上,如右图,当然了,根据自己图片需要拉伸黑线长度。

Error:(1, 1) 错误: 非法字符: '\ufeff'

原因:Eclipse可以智能的把UTF-8+BOM文件转为普通的UTF-8文件,Android Studio还没有这个功能,所以使用IDEA和Android Studio编译UTF-8+BOM编码的文件时会出现”非法字符: '\ufeff' “之类的错误。

1.用Notepad++打开 art+m 或者 点击菜单栏的格式选项  选择 无BOM编码 ;

2..在那个文件下把他修改成其他编码然后在修改回UTF-8   右下角有个修改编码的东西 这里就类似刷新一下编码的意思吧

3. 最后,介绍有一种巨蠢巨管用的办法,如果报错文件不是太多的时候可以尝试——找到报错的java文件,把内容全部复制下来,然后把源文件删除,接着新建一个文件,名字一定要和之前一样,把代码全部复制到里面,有几个文件就操作几遍,编译一下代码,有的相关文件会提示找不到类,原因是之前给删除了,依次把类文件导入,就可以运行了

Error:(31, 35) 错误: -source 1.6 中不支持 diamond 运算符

(请使用 -source 7 或更高版本以启用 diamond 运算符)

在studio上导入eclipse项目时报了这个错

所谓的diamond运算符诸如 ArrayList<>,HashMap<>这样,

private ArrayList<Map<String, Object>> musicList = new ArrayList<Map<String, Object>>();
如果前面尖括号里加了元素后面括号每加,就会这样报错,只要补上就行了

⑨java.lang.IllegalStateException: TimerTask is scheduled already
  at java.util.Timer.scheduleImpl(Timer.java:)
  at java
.util.Timer.schedule(Timer.java:) 
前面喜气洋洋的给页面加了一个定时器,结果跑起来抛出这个异常。
原因是同一个定时器任务只能被放置一次。
要解决这个问题就是要在每次放定时任务前,确保之前任务已经从定时器队列中移除了,并且每次放任务都要新建一个对象。
具体的操作流程咧,在这里 ——> TimerTask is scheduled already错误的解决方法
10.Error:(189, 25) 错误: 找不到符号

  符号:   方法 sqrt(float)

      位置: 类 FloatMath

原因是Android6.0不支持FloatMath.sin()了,主要有两个方法可以解决。

方法一:

用23一下的SDK版本进行编译。将gradle.build文件里(包括project的gradle.build和module的gradle.build)的compileSdkVersion设为23以下。

方法二:

将上面报错的地方,即 用Math类替换FloatMath类,Math.sin();


11.Error:(12, 23) 错误: 程序包org.apache.http不存在

Android 6.0(api 23)已经不支持HttpClient了,在build.gradle中 加入 useLibrary 'org.apache.http.legacy'就可以了,如图:


 

12.IndexOutOfBoundsException Invalid item position 0(0). Item count:0

这个错误一般出现在使用RecyclerView的时候吧,这个组件似乎本身就存在这样的问题。这时候你检查你导入的版本

我之前导的是23.4.0,就一直报这样的错,然后换成1之后就腿也不酸了腰也不疼了上楼也不喘气儿了

陆续记录中...

android studio上代码编译调试中遇到的一些异常记录的更多相关文章

  1. android studio 使用 jni 编译 opencv 完整实例 之 图像边缘检测!从此在andrid中自由使用 图像匹配、识别、检测

    目录: 1,过程感慨: 2,运行环境: 3,准备工作: 4,编译 .so 5,遇到的关键问题及其解决方法 6,实现效果截图. (原创:转载声明出处:http://www.cnblogs.com/lin ...

  2. Android Studio在代码重构中的妙用

    代码重构几乎是每个程序员在软件开发中必须要不断去做的事情,以此来不断提高代码的质量.Android Stido(以下简称AS)以其强大的功能,成为当下Android开发工程师最受欢迎的开发工具,也是A ...

  3. Android Studio中有没有类似于Eclipse中的ctrl+2+L的快捷键? \Android Studio快捷键之代码提示

    问:Android Studio中有没有类似于Eclipse中的ctrl+2+L的快捷键? 答:有,as中的快捷键是Ctrl+Alt+V AndroidStudio和Eclipse常用快捷键对比 功能 ...

  4. android studio 使用 jni 编译 opencv 完整实例 之 图像边缘检测!

    目录: 1,过程感慨: 2,运行环境: 3,准备工作: 4,编译 .so 5,遇到的关键问题及其解决方法 6,实现效果截图. ------------------------------------- ...

  5. 如何使Android Studio项目发布到Jcenter中

    Android仓库 简单的普及下关于android的依赖仓库,有两种分别是Jcenter与Maven Central其实不管是Jcenter还是Maven Central都是Maven库. Jcent ...

  6. Android Studio上方便使用butterknife注解框架的偷懒插件Android Butterknife Zelezny

    首先提下ButterKnifey已经更新到版本7.0.1了,现在注解已经不叫@InjectView了,而叫@Bind,感觉更贴合语义.同时注册的方式也从 ButterKnife.inject(this ...

  7. studio_ 优化Android Studio 启动、编译和运行速度?

    http://www.admin10000.com/document/6842.html: 作为一名 Android 程序员,选择一个好的 IDE 工具可以使开发变得非常高效,很多程序员喜欢使用 Go ...

  8. 如何优化 Android Studio 启动、编译和运行速度?

    作为一名 Android 程序员,选择一个好的 IDE 工具可以使开发变得非常高效,很多程序员喜欢使用 Google 的 Android Studio来进行开发,但使用起来有时会出现卡顿等问题.本文介 ...

  9. android studio 实现代码混淆

    =======本文章属于转载==========原文章地址:http://my.oschina.net/aibenben/blog/370985 这篇文章等是跟大家分享一在Android studio ...

随机推荐

  1. javascript定义类的方法总结

    1.构造函数法 类是对象的模板,定义了对象共有的方法属性数据 等,在javascript中一个函数就是一个对象,也可以看做一个类的构造方法. 所以我们可以像以下方式定义类: //1.经典的构造方法 Q ...

  2. bzoj1038: [ZJOI2008]瞭望塔

    Description 致力于建设全国示范和谐小村庄的H村村长dadzhi,决定在村中建立一个瞭望塔,以此加强村中的治安.我们将H村抽象为一维的轮廓.如下图所示 我们可以用一条山的上方轮廓折线(x1, ...

  3. linux中VI编辑器使用个人记录

    VI编辑器有三种编辑模式:命令模式.最后行模式.文本编辑模式 启动VI后进入的第一种模式是”命令模式“.从命令模式可进入最后行模式和编辑模式.而后两种模式之间不能直接切换.必须按ESC键退回到命令模式 ...

  4. Adobe Acrobat XI Pro 两种破解方式 Keygen秘钥 license替换 亲测有效

    大家平时看paper比较多的话想必都是用Adobe Acrobat而非Adobe Reader吧,其功能全面之处就不啰嗦了,下面给大家分享下Adobe Acrobat XI Pro的两种破解方式(两种 ...

  5. start-tomcat7.launch

    <?xml version="1.0" encoding="UTF-8" standalone="no"?> <launc ...

  6. CMD模块定义规范

    CMD 模块定义规范 在 Sea.js 中,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范.该规范明确了模块的基本书写格式和基本交互规 ...

  7. struts2+jquery+json集成

    以下采用struts2+jquery+json模拟一个案例.当点击提交按钮时会把输入的数据提交到后台,然后从后台获取数据在客户端显示. 效果如下: 接下来为struts2+jquery+json集成步 ...

  8. MySql的大小写问题

    原来Linux下的MySQL默认是区分表名大小写的,通过如下设置,可以让MySQL不区分表名大小写:1.用root登录,修改 /etc/my.cnf:2.在[mysqld]节点下,加入一行: lowe ...

  9. 《STL源码剖析》环境配置

    首先,去侯捷网站下载相关文档:http://jjhou.boolan.com/jjwbooks-tass.htm. 这本书采用的是Cygnus C++ 2.91 for windows.下载地址:ht ...

  10. 14.5.2.4 Locking Reads 锁定读:

    14.5.2.4 Locking Reads 锁定读: 如果你查询数据然后插入或者修改相关数据在相同的事务里, 常规的SELECT 语句不能给予足够的保护. 其他事务可以修改或者删除你刚查询相同的记录 ...