android studio上代码编译调试中遇到的一些异常记录
下面是记录的在平时代码编写或编译时的一些异常,答案有自己摸索出来的,也有参考其他程序猿朋友的,参考文章过多,就不一一贴出来了。
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上代码编译调试中遇到的一些异常记录的更多相关文章
- android studio 使用 jni 编译 opencv 完整实例 之 图像边缘检测!从此在andrid中自由使用 图像匹配、识别、检测
目录: 1,过程感慨: 2,运行环境: 3,准备工作: 4,编译 .so 5,遇到的关键问题及其解决方法 6,实现效果截图. (原创:转载声明出处:http://www.cnblogs.com/lin ...
- Android Studio在代码重构中的妙用
代码重构几乎是每个程序员在软件开发中必须要不断去做的事情,以此来不断提高代码的质量.Android Stido(以下简称AS)以其强大的功能,成为当下Android开发工程师最受欢迎的开发工具,也是A ...
- Android Studio中有没有类似于Eclipse中的ctrl+2+L的快捷键? \Android Studio快捷键之代码提示
问:Android Studio中有没有类似于Eclipse中的ctrl+2+L的快捷键? 答:有,as中的快捷键是Ctrl+Alt+V AndroidStudio和Eclipse常用快捷键对比 功能 ...
- android studio 使用 jni 编译 opencv 完整实例 之 图像边缘检测!
目录: 1,过程感慨: 2,运行环境: 3,准备工作: 4,编译 .so 5,遇到的关键问题及其解决方法 6,实现效果截图. ------------------------------------- ...
- 如何使Android Studio项目发布到Jcenter中
Android仓库 简单的普及下关于android的依赖仓库,有两种分别是Jcenter与Maven Central其实不管是Jcenter还是Maven Central都是Maven库. Jcent ...
- Android Studio上方便使用butterknife注解框架的偷懒插件Android Butterknife Zelezny
首先提下ButterKnifey已经更新到版本7.0.1了,现在注解已经不叫@InjectView了,而叫@Bind,感觉更贴合语义.同时注册的方式也从 ButterKnife.inject(this ...
- studio_ 优化Android Studio 启动、编译和运行速度?
http://www.admin10000.com/document/6842.html: 作为一名 Android 程序员,选择一个好的 IDE 工具可以使开发变得非常高效,很多程序员喜欢使用 Go ...
- 如何优化 Android Studio 启动、编译和运行速度?
作为一名 Android 程序员,选择一个好的 IDE 工具可以使开发变得非常高效,很多程序员喜欢使用 Google 的 Android Studio来进行开发,但使用起来有时会出现卡顿等问题.本文介 ...
- android studio 实现代码混淆
=======本文章属于转载==========原文章地址:http://my.oschina.net/aibenben/blog/370985 这篇文章等是跟大家分享一在Android studio ...
随机推荐
- Ubuntu14 或是其他系统当中关于sublimeSFTP超时解决方法
一直都使用Sublime的SFTP功能,感觉还不错,好用,但是最近不知道怎么了,使用不成了,提示超时了,于是在网上找一下解决方法,没有找到,于是自己想着试试看,于在搞了一会,发现只要把配制文件当中的s ...
- linux ssh 无密码登陆
要点:有时候ssh localhost 无法登陆本机,但各种设置都正确.重启下就好了...... 参考地址:http://bbs.csdn.net/topics/370109654 三台机器实现互相之 ...
- Python 字典 Print 格式化
__author__ = 'dell' ab = {'Swaroop': 'swaroopch@byteofpython.info', 'Larry': 'larry@wall.org', 'Mats ...
- angular2 学习笔记 (Pipes)
Pipe 就是 ng1 的 filter <pre>{{ jsonValue | json }}</pre> 用法看这里就很清楚了 : https://angular.cn/d ...
- AVR单片机RC触摸
RC电容触摸感应按键1:RC感应原理 RC采样原理就是通过测量感应极电容的微小变化,来感知人体对电容式感应器(按键.轮键或者滑条)的感应.电极电容(C)通过一个固定的电阻(R)周期性地充放电.(原文件 ...
- insert 加的锁
?INSERT sets an exclusive lock on the inserted row. This lock is an index-record lock, not a next-ke ...
- BZOJ 1054 [HAOI2008]移动玩具
1054: [HAOI2008]移动玩具 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1388 Solved: 764[Submit][Statu ...
- WordPress Duplicator 0.4.4 Cross Site Scripting
测试方法: 提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! Advisory ID: HTB23162 Product:DuplicatorWordPressPlugin Vend ...
- matlab制造一个64*64的仿真数据
fid = fopen('test_001.img','w'); r=random('Normal',100,0,64,64); z=random('Uniform',0,5,64,64); %%%% ...
- 去掉cell边框的简单办法
实很简单,把backgroundView设置为一个空的View,然后就干净了 UIView *tempView = [[UIView alloc] init]; [cell setBackground ...