======= 7    Failure [INSTALL_FAILED_INVALID_APK]

执行  adb install -r test.apk。时出现错误  Failure [INSTALL_FAILED_INVALID_APK]

可能是apk的签名出现问题,这个在之前遇到过,需要给apk签名

今天安装多个apk都是出现这个错误,遂关闭系统对签名的检测

方法:修改 /system/build.prop 文件。

将ro.install.3rd_cert=true

修改为ro.install.3rd_cert=false

重启设备就可以安装apk了

=========6   安装失败:INSTALL_FAILED_VERIFICATION_FAILURE?  Install_failed_verifcation_failure?

    你必须允许未签名的应用。安装被Android。允许设置非市场的应用程序安装。

=========5    关于魅族MX3无法弹出Toast的问题

    设置->应用->你的应用,里面有一个显示通知的选项,打上勾,应该就可以了,你试一下

==========  4.3   Segmentation fault 问题浅谈

今天调试程序时遇到了一个问题,当我用GDB调试程序时出现了Segmentation fault,以前没有遇到过,最后查看资料,有点明白了。
    出现了Segmentation fault,基本上的原因是,非法的内存访问。
例如数组的越界,在循环操作时循环变量的控制问题,也有字符串拷贝时长度溢出,指针指向了非法的空间,还有就是申明一个指针,但却没有对其初始化,就直接引用,或者没有开辟内存空间就释放内存,所以要检查申请空间时间偶成功。。。

还有那个问题在调试时会有这样的信息:Program terminated with signal SIGSEGV, Segmentation fault.
对于SIGSEGV这个信号,经常会和SIGBUS信号出现在一块,

SIGBUS与SIGSEGV信号的一般区别如下:

1) SIGBUS(Bus error)意味着指针所对应的地址是有效地址,但总线不能正常使用该指针。
通常是未对齐的数据访问所致。
2) SIGSEGV(Segment fault)意味着指针所对应的地址是无效地址,没有物理内存对应该地址。

 
通常导致段错误的几个直接原因:
1、解除引用一个包含非法值的指针。
2、解除引用一个空指针(常常由于从系统程序中返回空指针,并未经检查就使用)。
3、在未得到正确的权限时进行访问。
4、用完了堆栈或堆空间(虚拟内存虽然巨大,但绝非无限)。

这些是我个人的一些看法,希望和大家交流。。。

======= 4。2    java 异常java.lang.UnsupportedOperationException

在项目中采用一个枚举的集合,本人采用Collections中的空集合Collections.emptyList()在添加时发生异常:

常见集合如下:

private List<VacationCategory> vacationcategorys = Collections.emptyList();

报错误如下:

-- Encapsulated exception ------------\
java.lang.UnsupportedOperationException
..............................

JDK API解释如下:

java.lang.CloneNotSupportedException

不支持克隆异常。当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常。

在网上查一下原因是因为部分集合类型一样但是缺少部分方法或不支持。

如特殊情况如下:

(1)常常使用Arrays.asLisvt()后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常。这是由于:

Arrays.asLisvt() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等method在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。ArrayList override这些method来对list进行操作,但是Arrays$ArrayList没有override remove(int),add(int)等,所以throw UnsupportedOperationException。
解决方法是使用Iterator,或者转换为ArrayList

List list = Arrays.asList(a[]);
List arrayList = new ArrayList(list);

(2)

private List<VacationCategory> vacationcategorys = Collections.emptyList();

执行remove,add等method时,抛出此异常,本人将上述代码改为:

private List<VacationCategory> vacationcategorys = new ArrayList<VacationCategory>();

没有此错误,于是我查看一下源代码:

源码如下:此类在Collections的类中:

EmptyList此集合竟然没有相应的add,remove等方法

========== 4.1  Caused by: java.lang.IllegalArgumentException: Invalid path: /mnt/sdcar

E/AndroidRuntime( 2766): Caused by: java.lang.IllegalArgumentException: Invalid path: /mnt/sdcard

E/AndroidRuntime( 2766):      at android.os.StatFs.doStat(StatFs.java:46)

E/AndroidRuntime( 2766):      at android.os.StatFs.(StatFs.java:39)

E/AndroidRuntime( 2766): Caused by: libcore.io.ErrnoException: statfs failed: EIO (I/O error)

try {

StatFs f = new StatFs(path);

BigInteger freeBig = BigInteger.valueOf(f.getFreeBlocks())

.multiply(BigInteger.valueOf(f.getBlockSize()));

BigInteger sizeBig = BigInteger.valueOf(f.getBlockCount())

.multiply(BigInteger.valueOf(f.getBlockSize()));

.......................

} catch (Exception e) {

LogUtils.e("e ----------------------yyyyyyyyyyyyyyyyyyyyyyyyy  = " + e.toString());

}

不多说了, 添加try ,可以解决上面异常。

======4   彻底解决 Canvas 引起的 java.lang.unsupported operation exception, android.view.GLES20Canvas.clipPath(GLES20Canvas异常

发现在使用 Canvas.clipPath() 方法的时候,3.0版本以下可以正常使用,但是3.0以上由于谷歌默认开启了硬件加速,

就会抛 java.lang.unsupported operation exception, android.view.GLES20Canvas.clipPath(GLES20Canvas... 的异常,可以关闭硬件加速,但是最低编译版本就要换成3.0,所以2.X 的机器就用不了这个应用,后来搜索发现可以给View设置关闭硬件加速,但是翻页效果是直接画出来的,没有View...

解决方法 1:

使用以下代码:

if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
Gma_CustomImage.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}

====

最近在做一个电子书项目,想要把开源的Shelves+iReader的翻页卷曲等弄到一起,在做卷曲效果时遇到以下问题:

java.lang.unsupported operation exception, android.view.GLES20Canvas.clipPath(GLES20Canvas...

万能的谷哥告诉我,这是硬件加速的问题,可是我从来没开启过硬件加速啊,做了个测试,View层的硬件加速已经干掉了

,那硬件加速肯定来自于Canvas绘制层了,测试了下,果然是绘制层开启了硬件加速。

给一个链接,讲硬件加速讲的很清楚的文章:点击查看

综合看了之后解决了,即在AndroidManifest.xml application下设定:

<application
android:label="@string/application_name"
android:hardwareAccelerated="false">

---------------------------------------------------------------------------------------------------------------------------------------------

关于 Hardware Acceleration

  1、不同层级的加速:

Application

<applicationandroid:hardwareAccelerated="true" ...>

Activity

<application android:hardwareAccelerated="true">
<activity ... />
<activity android:hardwareAccelerated="false" />
</application>

Window

    getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

View

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

2、如何判断是否开启了硬件加速

在绘制之前,你必须做该测试 Canvas.isHardwareAccelerated() 替代View.isHardwareAccelerated() 在必要时。

View.isHardwareAccelerated() ;//returns true if the View is attached to a hardware accelerated window.
Canvas.isHardwareAccelerated();// returns true if the Canvas is hardware accelerated

3、开启硬件加速之后,许多2D的绘制方法会抛出异常:




In addition, some operations behave differently with hardware acceleration enabled:



 
 

=========3   com.google.gson.stream.MalformedJsonException的解决办法

关于Gson解析的异常,我花费两个小时才调试出来。如果你程序出现以下的异常,有两种可能性:‘

1. 找到一个JSON格式的验证工具,这个网上很多大家可以百度下

2.你的JSON格式验证没有问题,却一直报这个解析错误,请确定你的JSON数据没有多余的空格。这个空格有可能在IO流读取的时候多读了

  1. com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 33
  2. at com.google.gson.Gson.assertFullConsumption(Gson.java:779)
  3. at com.google.gson.Gson.fromJson(Gson.java:769)
  4. at com.google.gson.Gson.fromJson(Gson.java:717)
  5. at com.google.gson.Gson.fromJson(Gson.java:689)
  6. at com.ant.Test.main(Test.java:24)
  7. Caused by: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 33
  8. at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1505)
  9. at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1386)
  10. at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:531)
  11. at com.google.gson.stream.JsonReader.peek(JsonReader.java:414)
  12. at com.google.gson.Gson.assertFullConsumption(Gson.java:775)
  13. ... 4 more

=======2   Error:(1, 0) Plugin with id 'com.android.application' not found.

    在build.gradle文件里加入

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0+'
}
} allprojects {
repositories {
jcenter()
}
}

=========1  ,java.lang.UnsupportedOperationException 解决方案

常常使用Arrays.asLisvt()后,  调用add,remove这些method时出现 java.lang.UnsupportedOperationException异常。

这是由于:
Arrays.asLisvt() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等 method在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。

ArrayList override这些method来对list进行操作,但是Arrays$ArrayList没有override remove(int),add(int)等,所以throw UnsupportedOperationException。

解决方法是使用Iterator,或者  转换为ArrayList
List list = Arrays.asList(a[]);
List arrayList = new ArrayList(list);

bug_ _ _常见的bug??的更多相关文章

  1. Otto Product Classification Winner's Interview: 2nd place, Alexander Guschin ¯\_(ツ)_/¯

    Otto Product Classification Winner's Interview: 2nd place, Alexander Guschin ¯\_(ツ)_/¯ The Otto Grou ...

  2. ie6下常见的bug 调整页面兼容性

    ie6下常见的bug 我们布局页面,首先符合标准,如何写一个页面的标准性? 但是ie6等浏览器本身就比较特殊,bug比较多,兵法云,知己知彼百战百胜.我们需要了解ie6的一些常见bug,这样,更好的调 ...

  3. 问题:计算foldRight(1)(_-_) 与foldLeft(1)(_-_)值不一样

    List(1,2,3,4)问题:计算foldRight(1)(_-_) 与foldLeft(1)(_-_)值不一样首先看foldRight(1)(_-_)计算过程((( (1-1)-2)-3)-4) ...

  4. 常见的bug

    常见bug 一. Android系统功能测试设计的测试用例: a.对所测APP划分模块 b.详细列出每个模块的功能点(使用Xmind绘制功能图) c.使用等价类划分.边界值.场景法等对各功能点编写测试 ...

  5. 常见浏览器bug(针对IE6及更低版本)及其修复方法

    常见bug及其修复方法有以下几种 1.双外边距浮动bug 双外边距浮动bug在IE6及更低版本中常见.所谓双外边距浮动bug是指使任何浮动元素上的外边距加倍.(见下图) 只要将元素的display属性 ...

  6. Spark Scala当中reduceByKey(_+_) reduceByKey((x,y) => x+y)的用法

    [学习笔记] reduceByKey(_+_)是reduceByKey((x,y) => x+y)的一个 简洁的形式*/ val rdd08 = sc.parallelize(List((1, ...

  7. pyppeteer使用时常见的bug及基本使用(转)

    pyppeteer使用时常见的bug及解决办法: https://blog.csdn.net/Mr__lqy/article/details/102626025 pyppeteer的基本使用: htt ...

  8. 你可能不知道的 NaN 以及 underscore 1.8.3 _.isNaN 的一个 BUG

    这篇文章并不在我的 underscore 源码解读计划中,直到 @pod4g 同学回复了我的 issue(详见 https://github.com/hanzichi/underscore-analy ...

  9. JS模式:Mixin混合模式,=_=!就是常见的Object.create()或者_extend()

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. easyui 筛选数据及仅允许选择数据

    先说需求,本地已缓存数据源,用户输入拼音码或编号,筛选数据作为新的数据源,然后通过键盘选择. 再说问题,easyui combogrid控件,在mode为local,也就是将数据源缓存在本地的情况下, ...

  2. WP8 MediaElement 实现循环播放

    很简单, 直接在MediaEnded事件里加Play()即可

  3. 基于数据库MySQL的简易学生信息管理系统

    通过这几天学习Mysql数据库,对其也有了基本的了解,为了加深印象,于是就写了一个最简易的学生信息管理系统. 一:基本要求 1.通过已知用户名和密码进行登录: 2.可以显示菜单: 3.可以随时插入学生 ...

  4. python 字符串技巧 from python cookbook

    所有数据进入程序中都只是一串字节 英文字符占一个字节 汉语是两个字节 一字节byte=8bit Unicode字符串为每种语言的每种字符设定了统一并且唯一的二进制编码 big = r'This is ...

  5. Hyper-V安装Oracle Linux6_4 Oracle db 12c并使用rman做异机恢复

    本文记录在Windows Server 2012 R2上安装Oracle Enterprise Linux 6.4以及使用RMAN进行进行异机恢复的过程. Windows服务器增加Hyper-V功能 ...

  6. 吴奇隆刘诗诗婚礼场地:巴厘岛Ayana酒店,美到窒息!

    导读:忍不住转载一下,原文地址:http://www.sjq315.com/news/270768.html 3月20日,吴奇隆和刘诗诗在巴厘岛五星级酒店Ayana Resort and Spa酒店举 ...

  7. 前后台数据交互 后台封装数据 json格式

    namespace ~.sverIterface { public class EventPlayerInfo { public string name { get; set; } public st ...

  8. Sqlserver 函数(例子)

    --SQL SERVER 2008 函数大全/*author:TracyLeecsdncount:Travylee*/ /*一.字符串函数:1.ascii(字符串表达式)   返回字符串中最右侧字符的 ...

  9. Android——播放器和图片轮播

    layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...

  10. 基于params,ref,out的参数问题详解

    http://www.jb51.net/article/37967.htm 最近在写程序时遇到params,ref,out 参数问题.回头有自习看了看MSDN,才巩固了基础.现在和大家分享一下.par ...