======= 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. 黑马----JAVA异常

    黑马程序员:Java培训.Android培训.iOS培训..Net培训 黑马程序员--JAVA异常 一.JAVA异常有三种语句块:try语句块.catch语句块.finally语句块. 1.try语句 ...

  2. bootstrap总结

    bootstrap在reset.css文件中设置margin为0,因此其他的标签需要重新设计margin. 1.h <h>标签和普通使用方法一样. 定义了.h1~.h6六个类名,样式和标题 ...

  3. display:inline; display:block;

    block(块级元素): div .from. p .table. pre.h1~h6. dl .ol .ul等 inline(内联元素): span.a.strong.em.label.input. ...

  4. keras 入门之 regression

    本实验分三步: 1. 建立数据集 2. 建立网络并训练 3. 可视化 import numpy as np from keras.models import Sequential from keras ...

  5. U盘格式转换

    有一次想把5G的文件拷到U盘里面,悲催的发现拷不进去,文件过大...... 硬盘格式:NTFS 把自己的U盘也改了格式后,就可以了

  6. 【转】rollup、cub、grouping sets、grouping、grouping_id在报表中的应用

    摘自 http://blog.itpub.net/26977915/viewspace-734114/ 在报表语句中经常要使用各种分组汇总,rollup和cube就是常用的分组汇总方式. 第一:gro ...

  7. android环境配置

    1.计算机右键点击属性 2.点击高级系统设置 3.选择高级——>选择环境变量 4.点击系统变量下的新建 1)新建ANDROID_HOME:你的sdk所在的目录 2)新建JAVA_HOME:C:\ ...

  8. mybatis:Invalid bound statement (not found)

    [常规解决办法] 如果出现: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 一般的原因 ...

  9. tableView优化性能

    在iOS应用中,UITableView应该是使用率最高的视图之一了.iPod.时钟.日历.备忘录.Mail.天气.照片.电话.短信. Safari.App Store.iTunes.Game Cent ...

  10. js 获取小数点位数方法及 字符串与数字之间相互转换方法

    1.获取小数点位数方法 a. 使用 js 中 subsrting,indexOf,parseFloat三个函数,代码如下: var s = "22.127456" ;//s 为 字 ...