1. 程式人生 > >哥,就他欺負我(未完待續。。。)

哥,就他欺負我(未完待續。。。)

LZ-Says:在北京,習慣不了倆個人,那就自己過好自己的人生。

前言

本篇文章,主要用於整理收集開發過程中遇到的坑,或許這個坑當初耗費了 10 分鐘,耗費了半小時,那麼既然如此,那就要避免或者加快下次解決問題所耗時間和精力。

不經歷點 bug,如何做好一枚合格的猿猿~

哥,就他們欺負我~

  • 靜心:哥,就他們欺負我!

  • 雞大:看哥給你怎麼收拾他們!

  • 靜心:這裡寫圖片描述

  • 雞大:這裡寫圖片描述

1. ViewStub must have a valid layoutResource

注意檢視佈局中的 ViewStub 引用的 layout 是不是 android:layout。

2. Read time out

先放置一張異常圖:

在這裡插入圖片描述

LZ 檢視後,修改 Gradle 為離線工作模式即可,如下圖:

在這裡插入圖片描述

3. Only fullscreen opaque activities can request orientation

話說在某天,吧嗒吧嗒敲完執行,吭嘰卡拉,崩潰了,檢視異常頭部如下:

java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

經過和度娘百般糾纏,得知如下結論,谷歌 Baba 在新的 Api 中已經增加了強制設定橫豎屏模式下不能在設定 Activity 為透明。

我們先來看看谷歌 Baba 放出的部分原始碼:

  if (getApplicationInfo().targetSdkVersion >= O && mActivityInfo.isFixedOrientation()) {
      final TypedArray ta = obtainStyledAttributes(com.android.internal.R.styleable.Window);
      final boolean isTranslucentOrFloating = ActivityInfo.isTranslucentOrFloating(ta);
      ta.recycle();
       if (isTranslucentOrFloating) {
          throw new IllegalStateException(
                  "Only fullscreen opaque activities can request orientation");
      }
  }

解決這個問題,目測,目前而言,倆種方式:

  • 設定 android:windowIsTranslucent 為 false,當然,這樣我們的 Activity 便不透明瞭;

  • android:screenOrientation=“portrait” 和 android:windowIsTranslucent 留一個,一山不容二虎,自己看的辦吧。

這個,也算是 8.0 留下的坑了,反正 LZ 是沒看懂為啥要這麼做?

對應參考資料:

4. NestedScrollView 巢狀 RecyclerView 滑動卡頓

直接使用如下程式碼即可解決:

LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setSmoothScrollbarEnabled(true);
layoutManager.setAutoMeasureEnabled(true);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
recyclerView.setNestedScrollingEnabled(false);

5. WebView 滑動卡頓

設定開啟硬體加速即可,如下:

// 開啟硬體加速
webview.setLayerType(View.LAYER_TYPE_HARDWARE,null);

6. Unable to resolve dependency for ‘:[email protected]/compileClasspath’: Could not resolve xxx

如下圖,檢查是否已取消 Gradle 離線模式。

7. Could not get resource ‘xxx’

日誌如下:

org.gradle.api.resources.ResourceException: Could not get resource 'https://raw.githubusercontent.com/HyphenateInc/Hyphenate-SDK-Android/master/repository/com/android/support/appcompat-v7/'.
	at org.gradle.internal.resource.ResourceExceptions.failure(ResourceExceptions.java:74)
	at org.gradle.internal.resource.ResourceExceptions.getFailed(ResourceExceptions.java:57)
	at org.gradle.internal.resource.transfer.AccessorBackedExternalResource.list(AccessorBackedExternalResource.java:195)
	at 

如下圖,檢查是否開啟 Maven repository:

8. java.util.ConcurrentModificationException

這裡感謝騰訊 Bugly,下面貼出官方給出的建議:

該異常表示迭代器迭代過程中,迭代的物件發生了改變,如資料項增加或刪除。
[解決方案]: 由於迭代物件不是執行緒安全,在迭代的過程中,會檢查modCount是否和初始modCount即expectedModCount一致,如果不一致,則認為資料有變化,迭代終止並丟擲異常。常出現的場景是,兩個執行緒同時對集合進行操作,執行緒1對集合進行遍歷,而執行緒2對集合進行增加、刪除操作,此時將會發生ConcurrentModificationException異常。
具體方法:多執行緒訪問時要增加同步鎖,或者建議使用執行緒安全的集合:

  1. 使用ConcurrentHashMap替換HashMap,CopyOnWriteArrayList替換ArrayList;
  2. 或者使用使用Vector替換ArrayList,Vector是執行緒安全的。Vector的缺點:大量資料操作時,由於執行緒安全,效能比ArrayList低.

So,LZ 簡述下如何出現這個異常:

迴圈移除 List。

對,就是這個,然後就 GGG,各種無奈,解決方案如下:

Iterator<GroupEntity> it = groups.iterator();
while (it.hasNext()) {
    it.remove();    
}

使用迭代器即可。

8. java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity

很 Easy,使用前判空~!!!

9. Switch 防止初始化的時候觸發監聽

// 防止初始化的時候觸發監聽
if (!buttonView.isPressed()) {
   return;
}

10. 關於 EditText 游標顯示問題

話說某天,很自然的搞起登入、註冊以及修改密碼,哦可之後卻發現,咦,TMD 游標呢?

說著,將 EditText 背景設定為黑色,Enmmm,出來了。

接著問度娘,大多不靠譜,不過也發現了一些小歪路,最後感謝我文哥提醒。

Android 5.0 之後,推出了很多很 nice 的小部件,同時,在我們的 color 檔案下也邢增了幾個小鬼鬼,下面 LZ 找了一張不錯的圖:

So,變更 colorAccent 顏色值即可,特此記錄。

11. Write access is allowed from event dispatch thread only

問題原因是因為 Android Studio 與本地安裝 JDK 衝突,解決辦法如下:

依次點選:File -> Project Structure -> SDK Location

勾選 ‘Use embedded JDK’ 並設定 JDK 位置為 Android Studio 下 jre 即可(\Android Studio\jre)

感謝:

12. The key must be an application-specific resource id

這個問題是在 LZ 為 View 設定 Tag 時出現,主要是因為此 id 值要求唯一。

解決辦法可以直接使用當前 View id 即可。

感謝:

13. @DELETE method is not supporting(Non-body HTTP method cannot contain @Body or @TypedOutput.)

解決辦法:

@HTTP(method = "DELETE", path = "介面地址", hasBody = true) // 這是關鍵
Observable<JobDeleteResponseModel> jobDelete(@Body JobDeleteRequestModel model);

感謝:

個人公眾號

不定期釋出博文,最近有點忙,感謝老鐵理解,歡迎關注~

相關推薦

欺負待續

LZ-Says:在北京,習慣不了倆個人,那就自己過好自己的人生。 前言 本篇文章,主要用於整理收集開發過程中遇到的坑,或許這個坑當初耗費了 10 分鐘,耗費了半小時,那麼既然如此,那就要避免或者加快下次解決問題所耗時間和精力。 不經歷點 bug,如何做好

漫漫征途java開發待續

前言 2018年,大二上,有幸加入服務外包實驗室的考核,在考核中,主動加入福大校友通這個專案的後端,一是為了積累專案經驗,二是為了學到更多東西,進入了之後發現原來要學的這麼多,時間這麼緊!但唯有學習! 心得體會   在金榕學長的帶領下,我先學習了java基礎,當然學習所用材料就是菜鳥教程中的j

區塊鏈的加密演算法__一從維吉尼亞到RSA待續

密碼學源於數學。處於一些特殊的需要,自從數學有所發展的時候,就有了加密者與解密者。 一開始的密碼學加密法都是對稱加密法,這種情況一直到上個世紀中葉RSA加密法誕生。如今區塊鏈所使用的各種各樣的加密法都為不對稱加密,而最早的不對稱加密法就是RSA加密法,是它開啟了公鑰密碼學的新時代,以及如今的區塊

nginx+tomcat環境下web項目文件上傳問題待續

chm 技術 無法 web 速度 目錄 環境 自己的 是把   最近我把自己的服務器換成centos,利用nginx做服務器實現動靜分離,覺得項目響應的速度明顯提高了(一周之前還是Windows服務器+純tomcat結構,慢慘了T_T),以前都是用tomcat做服務器,用了

JAVA轉大資料的學習之路該這樣走內附1T大資料資料

如今使用了 23 年的 Java不再免費了,Java程式設計師是時候該轉移了,現在大資料的時代下,更是Java程式設計師們轉型可遇而不可求的機遇。為什麼要這麼說呢? 因為Java程式設計師轉型大資料工程師有著天然進階優勢,不僅僅是前景和薪資。技術層面來說,大資料使用的Hadoop(在分散式伺服器

linux鳥-第0章-計算機概述

計算機概述 計算機是接收使用者輸入指令與資料,經過中央處理器的資料與邏輯單元運算處理後,以產生或儲存成有用的資訊。 計算機主要分為三部分: 輸入單元 中央處理器 輸出單元 CPU為一個具有特定功能的晶片,裡頭含有微指令集,CPU讀取的資料都是從記憶體讀取

<吳恩達老師深度學習筆記二>第一周深度學習介紹待續

神奇 建立 網絡筆記 1.3 展示 定義 信息 英語 輸出 摘要: 本篇博客僅作為筆記,如有侵權,請聯系,立即刪除(網上找博客學習,然後手記筆記,因紙質筆記不便保存,所以保存到網絡筆記)。   1.1 歡迎   深度學習常常運用於:讀取X光圖像、個性化教育、精準化農業、駕駛

<吳恩達老師深度學習筆記二>第一週深度學習介紹待續

摘要: 本篇部落格僅作為筆記,如有侵權,請聯絡,立即刪除(網上找部落格學習,然後手記筆記,因紙質筆記不便儲存,所以儲存到網路筆記)。   1.1 歡迎   深度學習常常運用於:讀取X光影象、個性化教育、精準化農業、駕駛汽車等領域。深度學習處於AI分支中,學習如何建立神經網路(包含一個深度神經網路),以及如

h5移動端手機拍照壓縮旋轉上傳 vueFileReaderexif-jscanvasaxios待續

import EXIF from 'exif-js' export default { name: '', data () { return { compressFrondImage: '', // 壓縮之前的圖片 compressEndImage: '' // 壓縮

關於遞迴問題的探討和優化【線性遞迴】和【發散遞迴】待續更新中

遞迴介紹 首先來說一下遞迴,我們不講概念,我只說一下遞迴本身,有需要的同學請自行查閱資料。 遞迴分兩個階段,遞和歸 遞:是用來描

web前端開發面試題待續

tex ora 相對 設置 erl 思路 實現 多列 寬度 一、HTML與XHTML的不同:1)XHTML元素必須被正確地嵌套 2)元素必須被關閉 如:<h1>……&l

待續機器學習教程視頻資料匯總

提升 isp pla blog sso 相關 學習機 you mage 在學習機器學習的過程中,我陸陸續續收集了些免費的教程資料,希望能和您共享。 如果您有好的網站希望分享就評論吧,我也會整理到文章中。 1 機器學習基礎篇 (1)課程資源 吳恩達《機器學習》cou

HTML基礎知識待續

表示 部分 round sub 常用 內部 換行 jquery 頁面 一、HTML編輯工具:Sublime Text 二、HTML實體字符:1、( 空格):&nbsp; 2、(<) &lt; 3、(>)&gt; 4、(&)&

復旦大學數學學院高等代數歷屆期中考試大題精選待續

math 變換 $1 教材 com 考試 b- lambda rda 本文收集了從 2009 年至今復旦大學數學學院高等代數歷屆期中考試精選的大題, 其中有的大題由習題課老師或任課老師自編而來, 有的大題由其他大學的教材或學習指導書中的題目或考研試題改編而來, 也有相當部分

關於數組的深度克隆待續

地址 關於 們的 type ++ ole 進行 ray nbsp 我們知道,Array.prototype上有一個slice()方法,可以對數組進行克隆,但是這個方法並不完美。如果一個數組是一維數組,使用slice()方法沒有任何問題,但如果是一個多維數組,那麽這個方法就不

AutoMapper介紹待續、部分沒實現

generic control nuget under start 官網 behavior 發現 cas 實體間轉換工具。其實也可以用Json來實現同名屬性、異名屬性(用JsonProperty指明)的自動轉換 最新版本6.11 需要使用vs2013以上。vs2012下

輸入輸出框架待續

+= windows ble 之前 返回值 nbsp 最小值 標準 logs 輸入一些整數,求出它們的最小值、最大值和平均值(保留3位小數)。 輸入保證這些數都是不超過1000的整數。 樣例輸入: 2 8 3 5 1 7 3 6 樣例輸出: 1 8 4.375 #incl

讀caffe源碼待續

樣本 源碼解析 單元 最小 size 傳遞 strong 統一 news caffe源碼閱讀雜記 準備 一些參考網頁 Neural Networks and Deep Learning TUTORIAL ON DEEP LEARNING FOR VISION Deep

ex36 自己編的一個冒險小遊戲待續

may num eth front exit import dea org island 1 #-*- coding: UTF-8 -*- 2 from sys import exit 3 #作出判斷選擇進森林還是出海冒險 4 def start():