欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

android異常,android運(yùn)行時(shí)異常

Android開發(fā)常見異常與錯(cuò)誤系列(一)

一、前言

創(chuàng)新互聯(lián)公司專業(yè)網(wǎng)站制作、成都網(wǎng)站制作,集網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營(yíng)銷、軟文推廣等專業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計(jì),讓網(wǎng)站在運(yùn)行后,在搜索中有好的表現(xiàn),專業(yè)設(shè)計(jì)制作為您帶來效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。

這系列文章是自己在平時(shí)開發(fā)過程中遇到的問題。之前只是記在云筆記上面,現(xiàn)在整理一下,發(fā)出來共享。

ps:像那些什么沒有注冊(cè)Activity呀,權(quán)限呀等最基本的就不再贅述。

二、ADB連接異常

有時(shí)我們發(fā)現(xiàn),即使自己從任務(wù)管理器里面把a(bǔ)db.exe給干掉了,但還是不行,這時(shí),你就可以嘗試以下操作:

[2014-07-30 17:09:11 - QtActivity] The connection to adb is down, and a severe error has occured.

[2014-07-30 17:09:11 - QtActivity] You must restart adb and Eclipse.

[2014-07-30 17:09:11 - QtActivity] Please ensure that adb is correctly located at ‘D:\InstallFile\AndroidDevelop\ADT\sdk\platform-tools\adb.exe’ and can be executed.

adb起動(dòng)失?。?/p>

1,殺掉其它的adb.exe看,如果不行,

2,看sdk\tools路徑下面有沒有

hprof-conv.exe

如果有,則把它復(fù)制到sdk\platform_tools下

3,如果沒有,剛看sdk\platform_tools下有沒有

hprof-conv.exe

如果有,剛復(fù)制到tools下。

4,如果兩者都沒有,剛下一個(gè)

hprof-conv.exe

三、java.lang.IllegalStateException: Activity has been destroyed

這個(gè)異常在切換Fragment中比較容易出現(xiàn),稍不注意就會(huì)出現(xiàn)如下異常:

FATAL EXCEPTION: main12-0909:20:14.689: E/AndroidRuntime(31223): java.lang.IllegalStateException: Activity has been destroyed12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1365)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)12-0909:20:14.689: E/AndroidRuntime(31223): at cn.com.topsky.community.tfd.DongTaiFragment.init(DongTaiFragment.java:209)12-0909:20:14.689: E/AndroidRuntime(31223): at cn.com.topsky.community.tfd.DongTaiFragment.onCreateView(DongTaiFragment.java:68)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)12-0909:20:14.689: E/AndroidRuntime(31223): at android.os.Handler.handleCallback(Handler.java:605)12-0909:20:14.689: E/AndroidRuntime(31223): at android.os.Handler.dispatchMessage(Handler.java:92)12-0909:20:14.689: E/AndroidRuntime(31223): at android.os.Looper.loop(Looper.java:154)12-0909:20:14.689: E/AndroidRuntime(31223): at android.app.ActivityThread.main(ActivityThread.java:4624)12-0909:20:14.689: E/AndroidRuntime(31223): at java.lang.reflect.Method.invokeNative(Native Method)12-0909:20:14.689: E/AndroidRuntime(31223): at java.lang.reflect.Method.invoke(Method.java:511)12-0909:20:14.689: E/AndroidRuntime(31223): atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)12-0909:20:14.689: E/AndroidRuntime(31223): atcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)12-0909:20:14.689: E/AndroidRuntime(31223): at dalvik.system.NativeStart.main(Native Method)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

經(jīng)查,說這個(gè)是當(dāng)前android-support-v4版本的一個(gè)bug,因?yàn)樵诋?dāng)fragment進(jìn)行到detached狀態(tài)時(shí),它會(huì)重置它的內(nèi)部狀態(tài)。

然而,它并沒有重置mChildFragmentManager.這導(dǎo)致在Fragment重新attach時(shí),它(fragment)沒有重新attachm childFragmentManager,從而引發(fā)了上面的異常.

解決方案:

在每個(gè)調(diào)用getChildFragmentManager()的fragment中復(fù)寫onDetach()方法:

@OverridepublicvoidonDetach() {super.onDetach();try{Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");childFragmentManager.setAccessible(true);childFragmentManager.set(this,null);}catch(NoSuchFieldException e) {thrownewRuntimeException(e);}catch(IllegalAccessException e) {thrownewRuntimeException(e);}}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

四、java.lang.IllegalArgumentException: Illegal character in query at index

這個(gè)異常,在我們拼接請(qǐng)求參數(shù)時(shí),可能會(huì)碰到,原因是里面的特殊字符轉(zhuǎn)換異常。解決辦法如下:

url轉(zhuǎn)換問題

String url = baseUrl + “?” + “name=” + name + “age=” + age;

url = url.replaceAll(“”, “%26”);

url = url.replaceAll(” “, “%20”);

解釋如下:

特殊符號(hào)替換符號(hào)

?%3F

%26

|%124

=%3D

#%23

/%2F

+%2B

%%25

空格%20

五、eclipse連接小米2S調(diào)試程序的問題

雖然快2年沒用過eclipse了,但這個(gè)問題還是貼出來,也許正好有正在用eclipse的同學(xué)遇到了此問題:

小米Mi2S連接到eclipse上無法識(shí)別。即使開啟了調(diào)試模式,也無法識(shí)別.終于找到了一個(gè)可用的方法。

方法

用數(shù)據(jù)線連接手機(jī)和電腦。

打開手機(jī)撥號(hào)界面。

在撥號(hào)界面按 # #717717# # 自動(dòng)就開啟了。

在通知欄會(huì)出現(xiàn)一個(gè) Diag USB port enable。

當(dāng)然,應(yīng)該是需要ROOT權(quán)限的。

這時(shí)候你的PC機(jī)會(huì)彈出安裝設(shè)備驅(qū)動(dòng)。

如果不成功,多插拔幾次試試。

ok!安裝完就搞定了!這時(shí)候打開eclipse就會(huì)在Driver里面看到你的手機(jī)了。

注意事項(xiàng)

在PC機(jī)上安裝新硬件向?qū)r(shí)候可能會(huì)遭遇到缺少dll文件,比如我就遇到缺少了WinUSBCoInstaller2.dll,這個(gè)問題。這時(shí)候就要去網(wǎng)上找找嘍。這個(gè)東西分x64 和 x86的,注意不要搞錯(cuò)了!

如果先打開eclipse,再安裝的話,可能導(dǎo)致eclipse掛掉,不明原因,可能是我機(jī)器配置不行。兩次均有這種狀況。所以建議先安裝后再開eclipse。

Android系統(tǒng)耗電異常怎么解決

若使用的是vivo手機(jī),Android系統(tǒng)是多個(gè)功能和服務(wù)的集合體,比如權(quán)限管理、藍(lán)牙設(shè)置、電話服務(wù)、指紋與密碼等常用功能有關(guān)的耗電會(huì)被計(jì)入Android系統(tǒng),如果第三方軟件使用到這些功能,電量也會(huì)被計(jì)入Android系統(tǒng),所以我們看到Android系統(tǒng)程序耗電較高,實(shí)際和第三方軟件的使用情況有關(guān),您可以使用“一鍵加速”清理后臺(tái)不必要的程序,適當(dāng)調(diào)低屏幕亮度和音量;另外進(jìn)入設(shè)置--電池,根據(jù)手機(jī)電量情況選擇合適的省電模式,延長(zhǎng)手機(jī)續(xù)航時(shí)間。

為什么Android應(yīng)用異常后會(huì)自動(dòng)重啟

1.Android是一種以Linux與JAVA為基礎(chǔ)的開放源代碼操作系統(tǒng),主要使用于便攜設(shè)備。中國(guó)大陸地區(qū)較多人使用“安卓”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),被谷歌收購(gòu)后則由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā),主要支持手機(jī)與平板。

Android本身是一個(gè)權(quán)限分立的操作系統(tǒng)。在這類操作系統(tǒng)中,每個(gè)應(yīng)用都以唯一的一個(gè)系統(tǒng)識(shí)別身份運(yùn)行(Linux用戶ID與群組ID)。系統(tǒng)的各部分也分別使用各自獨(dú)立的識(shí)別方式。Linux就是這樣將應(yīng)用與應(yīng)用,應(yīng)用與系統(tǒng)隔離開。

2.Android應(yīng)用異常后會(huì)自動(dòng)重啟是Android應(yīng)用異常后的安全警報(bào)!

所以你是用Android手機(jī)時(shí)偶爾會(huì)因?yàn)槟承┊惓?dǎo)致正在使用的應(yīng)用出現(xiàn)異常并強(qiáng)制關(guān)閉并重啟,

3,解決此類問題你需要捕獲出現(xiàn)的異常并做處理。這些在你手機(jī)的設(shè)置中就可進(jìn)行設(shè)置,主動(dòng)權(quán)在你,在Java中有兩類異常,分別是Error和RuntimeException,前者是不需要我們?nèi)ヌ幚淼?,我們處理的往往是后者。那么如何捕獲線程在運(yùn)行時(shí)的異常呢,我們可以使用自定義類實(shí)現(xiàn)

Thread.UncaughtExceptionHandler 接口并復(fù)寫uncaughtException(Thread thread, Throwable ex)方法來實(shí)現(xiàn)對(duì)運(yùn)行時(shí)線程進(jìn)行異常處理。在Android中我們可以實(shí)現(xiàn)自己的Application類,然后實(shí)現(xiàn) UncaughtExceptionHandler接口,并在uncaughtException方法中處理異常,這里我們關(guān)閉App并啟動(dòng)我們需要的Activity,下面看代碼:

public class MyApplication extends Application implements

Thread.UncaughtExceptionHandler {

@Override

public void onCreate() {

super.onCreate();

//設(shè)置Thread Exception Handler

Thread.setDefaultUncaughtExceptionHandler(this);

}

@Override

public void uncaughtException(Thread thread, Throwable ex) {

System.out.println("uncaughtException");

System.exit(0);

Intent intent = new Intent(this, MainActivity.class);

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |

Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);

}

}

最后需要在Manifest中配置Application的標(biāo)簽android:name=".MyApplication",讓整個(gè)應(yīng)用程序使用我們自定義的Application類,這樣就實(shí)現(xiàn)了當(dāng)應(yīng)用遇到崩潰異常時(shí)重啟應(yīng)用的效果。

我們?cè)谌我庖粋€(gè)Activity中主動(dòng)拋出下面異常,就會(huì)發(fā)現(xiàn)應(yīng)用遇到異常后重啟了,如果不處理的話,應(yīng)用在遇到異常后就關(guān)閉了。

1.我們需要首先收集產(chǎn)生崩潰的手機(jī)信息,因?yàn)锳ndroid的樣機(jī)種類繁多,很可能某些特定機(jī)型下會(huì)產(chǎn)生莫名的bug。

2.將手機(jī)的信息和崩潰信息寫入文件系統(tǒng)中。這樣方便后續(xù)處理。

3.崩潰的應(yīng)用需要可以自動(dòng)重啟。重啟的頁面設(shè)置成反饋頁面,詢問 用戶是否需要上傳崩潰報(bào)告。

4.用戶同意后,即將2中寫入的崩潰信息文件發(fā)送到自己的服務(wù)器。

Android App之壓力測(cè)試 異常測(cè)試結(jié)果分析

進(jìn)行壓力測(cè)試主要是保證app的穩(wěn)定性,而獲取CRASH、ANR的相關(guān)信息是為了快速定位問題。

什么是CRASH?app異常退出,影響用戶后續(xù)正常使用,這種情況就可以列為app崩潰

什么是ANR? 全拼為Application Not Responding ?即應(yīng)用程序無響應(yīng)

1、KeyDispatchTimeout (5 seconds) --按鍵或觸摸事件在特定時(shí)間內(nèi)無響應(yīng)

2、BroadcastTimeout (10 seconds) --BroadcastReceiver 在特定時(shí)間內(nèi)無法處理完成

3、ServiceTimeout (20 seconds) --Service在特定的時(shí)間內(nèi)無法處理完成

CRASH 以及ANR 的出現(xiàn)都會(huì)對(duì)用戶的使用出現(xiàn)非友好的體驗(yàn),所以在測(cè)試過程盡早、盡快的發(fā)現(xiàn)這類問題

以上是關(guān)于Android App之壓力測(cè)試的理論部分,接下來會(huì)針對(duì)性的更新實(shí)踐內(nèi)容

網(wǎng)頁題目:android異常,android運(yùn)行時(shí)異常
網(wǎng)站地址:http://chinadenli.net/article14/dsdisde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、定制開發(fā)、企業(yè)建站、品牌網(wǎng)站制作、網(wǎng)站導(dǎo)航、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司