bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

android異常,android運行時異常

Android開發常見異常與錯誤系列(一)

一、前言

創新互聯公司專業網站制作、成都網站制作,集網站策劃、網站設計、網站制作于一體,網站seo、網站優化、網站營銷、軟文推廣等專業人才根據搜索規律編程設計,讓網站在運行后,在搜索中有好的表現,專業設計制作為您帶來效益的網站!讓網站建設為您創造效益。

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

ps:像那些什么沒有注冊Activity呀,權限呀等最基本的就不再贅述。

二、ADB連接異常

有時我們發現,即使自己從任務管理器里面把adb.exe給干掉了,但還是不行,這時,你就可以嘗試以下操作:

[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起動失敗:

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

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

hprof-conv.exe

如果有,則把它復制到sdk\platform_tools下

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

hprof-conv.exe

如果有,剛復制到tools下。

4,如果兩者都沒有,剛下一個

hprof-conv.exe

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

這個異常在切換Fragment中比較容易出現,稍不注意就會出現如下異常:

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

經查,說這個是當前android-support-v4版本的一個bug,因為在當fragment進行到detached狀態時,它會重置它的內部狀態。

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

解決方案:

在每個調用getChildFragmentManager()的fragment中復寫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

這個異常,在我們拼接請求參數時,可能會碰到,原因是里面的特殊字符轉換異常。解決辦法如下:

url轉換問題

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

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

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

解釋如下:

特殊符號替換符號

?%3F

%26

|%124

=%3D

#%23

/%2F

+%2B

%%25

空格%20

五、eclipse連接小米2S調試程序的問題

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

小米Mi2S連接到eclipse上無法識別。即使開啟了調試模式,也無法識別.終于找到了一個可用的方法。

方法

用數據線連接手機和電腦。

打開手機撥號界面。

在撥號界面按 # #717717# # 自動就開啟了。

在通知欄會出現一個 Diag USB port enable。

當然,應該是需要ROOT權限的。

這時候你的PC機會彈出安裝設備驅動。

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

ok!安裝完就搞定了!這時候打開eclipse就會在Driver里面看到你的手機了。

注意事項

在PC機上安裝新硬件向導時候可能會遭遇到缺少dll文件,比如我就遇到缺少了WinUSBCoInstaller2.dll,這個問題。這時候就要去網上找找嘍。這個東西分x64 和 x86的,注意不要搞錯了!

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

Android系統耗電異常怎么解決

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

為什么Android應用異常后會自動重啟

1.Android是一種以Linux與JAVA為基礎的開放源代碼操作系統,主要使用于便攜設備。中國大陸地區較多人使用“安卓”。Android操作系統最初由Andy Rubin開發,被谷歌收購后則由Google公司和開放手機聯盟領導及開發,主要支持手機與平板。

Android本身是一個權限分立的操作系統。在這類操作系統中,每個應用都以唯一的一個系統識別身份運行(Linux用戶ID與群組ID)。系統的各部分也分別使用各自獨立的識別方式。Linux就是這樣將應用與應用,應用與系統隔離開。

2.Android應用異常后會自動重啟是Android應用異常后的安全警報!

所以你是用Android手機時偶爾會因為某些異常導致正在使用的應用出現異常并強制關閉并重啟,

3,解決此類問題你需要捕獲出現的異常并做處理。這些在你手機的設置中就可進行設置,主動權在你,在Java中有兩類異常,分別是Error和RuntimeException,前者是不需要我們去處理的,我們處理的往往是后者。那么如何捕獲線程在運行時的異常呢,我們可以使用自定義類實現

Thread.UncaughtExceptionHandler 接口并復寫uncaughtException(Thread thread, Throwable ex)方法來實現對運行時線程進行異常處理。在Android中我們可以實現自己的Application類,然后實現 UncaughtExceptionHandler接口,并在uncaughtException方法中處理異常,這里我們關閉App并啟動我們需要的Activity,下面看代碼:

public class MyApplication extends Application implements

Thread.UncaughtExceptionHandler {

@Override

public void onCreate() {

super.onCreate();

//設置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的標簽android:name=".MyApplication",讓整個應用程序使用我們自定義的Application類,這樣就實現了當應用遇到崩潰異常時重啟應用的效果。

我們在任意一個Activity中主動拋出下面異常,就會發現應用遇到異常后重啟了,如果不處理的話,應用在遇到異常后就關閉了。

1.我們需要首先收集產生崩潰的手機信息,因為Android的樣機種類繁多,很可能某些特定機型下會產生莫名的bug。

2.將手機的信息和崩潰信息寫入文件系統中。這樣方便后續處理。

3.崩潰的應用需要可以自動重啟。重啟的頁面設置成反饋頁面,詢問 用戶是否需要上傳崩潰報告。

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

Android App之壓力測試 異常測試結果分析

進行壓力測試主要是保證app的穩定性,而獲取CRASH、ANR的相關信息是為了快速定位問題。

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

什么是ANR? 全拼為Application Not Responding ?即應用程序無響應

1、KeyDispatchTimeout (5 seconds) --按鍵或觸摸事件在特定時間內無響應

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

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

CRASH 以及ANR 的出現都會對用戶的使用出現非友好的體驗,所以在測試過程盡早、盡快的發現這類問題

以上是關于Android App之壓力測試的理論部分,接下來會針對性的更新實踐內容

網頁題目:android異常,android運行時異常
網站地址:http://vcdvsql.cn/article14/dsdisde.html

成都網站建設公司_創新互聯,為您提供微信小程序定制開發企業建站品牌網站制作網站導航做網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都app開發公司