======= 7 Failure [INSTALL_FAILED_INVALID_APK]html
執行 adb install -r test.apk。時出現錯誤 Failure [INSTALL_FAILED_INVALID_APK]java
多是apk的簽名出現問題,這個在以前遇到過,須要給apk簽名android
今天安裝多個apk都是出現這個錯誤,遂關閉系統對簽名的檢測數組
方法:修改 /system/build.prop 文件。app
將ro.install.3rd_cert=trueide
修改成ro.install.3rd_cert=false工具
重啓設備就能夠安裝apk了post
=========6 安裝失敗:INSTALL_FAILED_VERIFICATION_FAILURE? Install_failed_verifcation_failure?測試
你必須容許未簽名的應用。安裝被Android。容許設置非市場的應用程序安裝。gradle
=========5 關於魅族MX3沒法彈出Toast的問題
設置->應用->你的應用,裏面有一個顯示通知的選項,打上勾,應該就能夠了,你試一下
========== 4.3 Segmentation fault 問題淺談
今天調試程序時遇到了一個問題,當我用GDB調試程序時出現了Segmentation fault,之前沒有遇到過,最後查看資料,有點明白了。
出現了Segmentation fault,基本上的緣由是,非法的內存訪問。
例如數組的越界,在循環操做時循環變量的控制問題,也有字符串拷貝時長度溢出,指針指向了非法的空間,還有就是申明一個指針,但卻沒有對其初始化,就直接引用,或者沒有開闢內存空間就釋放內存,因此要檢查申請空間時間偶成功。。。
還有那個問題在調試時會有這樣的信息:Program terminated with signal SIGSEGV, Segmentation fault.
對於SIGSEGV這個信號,常常會和SIGBUS信號出如今一塊,
======= 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
(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 ,能夠解決上面異常。
發如今使用 Canvas.clipPath() 方法的時候,3.0版本如下能夠正常使用,可是3.0以上因爲谷歌默認開啓了硬件加速,
就會拋 java.lang.unsupported operation exception, android.view.GLES20Canvas.clipPath(GLES20Canvas... 的異常,能夠關閉硬件加速,可是最低編譯版本就要換成3.0,因此2.X 的機器就用不了這個應用,後來搜索發現能夠給View設置關閉硬件加速,可是翻頁效果是直接畫出來的,沒有View...
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
一、不一樣層級的加速:
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);
二、如何判斷是否開啓了硬件加速
在繪製以前,你必須作該測試 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
三、開啓硬件加速以後,許多2D的繪製方法會拋出異常:
In addition, some operations behave differently with hardware acceleration enabled:
clipRect()
: XOR
, Difference
and ReverseDifference
clip modes are ignored. 3D transforms do not apply to the clip rectangledrawBitmapMesh()
: colors array is ignoredsetDither()
: ignoredsetFilterBitmap()
: filtering is always onsetShadowLayer()
: works with text onlyPorterDuff.Mode.DARKEN
will be equivalent to SRC_OVER
when blending against the framebuffer.PorterDuff.Mode.LIGHTEN
will be equivalent to SRC_OVER
when blending against the framebuffer.PorterDuff.Mode.OVERLAY
will be equivalent to SRC_OVER
when blending against the framebuffer.ComposeShader
can only contain shaders of different types (a BitmapShader
and a LinearGradient
for instance, but not two instances of BitmapShader
)ComposeShader
cannot contain a ComposeShader
=========3 com.google.gson.stream.MalformedJsonException的解決辦法
關於Gson解析的異常,我花費兩個小時才調試出來。若是你程序出現如下的異常,有兩種可能性:‘
1. 找到一個JSON格式的驗證工具,這個網上不少你們能夠百度下
2.你的JSON格式驗證沒有問題,卻一直報這個解析錯誤,請肯定你的JSON數據沒有多餘的空格。這個空格有可能在IO流讀取的時候多讀了
=======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,或者 轉換爲ArrayListList list = Arrays.asList(a[]);List arrayList = new ArrayList(list);