Android報錯問題

Android Studio com.android.dex.DexException: Multiple dex files define(重複引用包)

按照慣例,直接上圖吧,從下圖可以看到我在library中有加了一個v4的包,同時我將它作爲dependencies,而在samples中也是一樣有一個v4的包,同樣的也需要將它作爲dependencies,這個時候你去編譯就會出現重複引用的問題:
那如何解決呢?
方法1:
你可以直接修改gradle文件,也可以在上圖中改,如下圖所示:
在gradle文件中改,只需要將compile改成provided就行。
如果直接配置的話,也是一樣的,在下拉框中選擇provided。這裏說明下,你只要改其中一個項目就可以了。

方法2:
使用這個方法有一個前提,就是你所引用的包在Library dependency中有,還是拿v4的包舉例。
首先將v4的包從你的libs文件中刪除,兩個項目中都刪除,然後再重新添加引用,這個添加方式如下,直接上圖吧,按圈起來的紅色框操作:

IOException

一般是文件讀寫問題,是否加權限
是否正確生成文件


NetworkOnMainThreadException

記得加權限
從Honeycomb SDK(3.0)開始,google不再允許網絡請求(HTTP、Socket)等相關操作直接在Main Thread類中,其實本來就不應該這樣做,直接在UI線程進行網絡操作,會阻塞UI、用戶體驗相當bad!即便google不禁止,一般情況下我們也不會這麼做吧~
所以,也就是說,在Honeycomb SDK(3.0)以下的版本,你還可以繼續在Main Thread裏這樣做,在3.0以上,就不行了,建議

1,和network有關比較耗時的操作放到一個子線程裏,然後用Handler消息機制與主線程通信。

ps:剛看到草稿箱有這麼一篇,可能當初覺得這個還有許多需整理,一直會增加就沒發,現在看來以後是不會再弄了,就發了吧。因爲……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章