畢設日誌——021-025

2019-12-16-週一

 

新學習的知識點

重新瞭解了一下原來項目的MVP架構,瞭解了Bmob的一些數據操作和即時通訊框架。

瞭解了最新的懶加載實現機制。

項目進度

使用MVP框架重構了登錄註冊頁面。

抽象了公共方法到父類,實現了Fragment懶加載框架。

項目筆記

學習了懶加載Fragment,在使用懶加載Fragment時,發現setUserVisibleHint已經不被推薦使用了,瞭解了最新的Fragment源碼,以及全新的官方推薦的懶加載方案。

 

2019-12-17-週二

 

新學習的知識點

再次學習了項目遷移AndroidX的過程,以及如何解決遷移中遇到的問題。

學習如何解決Android9.0使用http請求失效的問題。

項目進度

學習了即時通訊框架的使用,同時還解決了現有的即時通訊框架存在的問題,畢設中以後也可能會遇到,即Android9.0不能使用http協議請求網絡的問題。

項目筆記

繼續分析了微信登錄返回後不回調的方法,找到了問題所在,微信登錄取消後會返回一個null值,接收到後沒有判斷該值是不是null,就調用了.equals方法,導致崩潰。

添加了空指針判斷後解決問題,同時解決了程序中初始化類名時,使用Kotlin的  !!  導致try失敗的問題。

原來的tox分支不知道爲什麼被覆蓋了,之前遷移androidx的改動都恢復不了,只好重新開分支再遷移到androidx,這次與上次不同,遇到了更多的問題,花了兩個下午的時間都解決了,記錄一下完整的遷移androidx的過程。

記錄完整的AndroidX遷移過程:

前面的差不多,直接使用AndroidStudio的Refactor->migrate to androidX,但是不知道爲什麼這次AndroidStudio沒有將涉及到的類庫替換,全部需要自己手動替換,只好查了一下AndroidStudio的全局替換文本功能,快捷鍵 Ctrl+Shift+R,使用這個功能替換全局類庫還是比較快的,之前的問題均有出現,根據之前的筆記一一解決,遺漏一個小問題

漫畫詳情頁崩潰,錯誤提示

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.widget.NestedScrollView" on path:。。。。

原因是在代碼中使用 

var clazz= Class.forName("android.support.v4.widget.NestedScrollView”)

手動加載的類庫,改成

var clazz= Class.forName("androidx.core.widget.NestedScrollView”)

就好了,這個不知道爲什麼在之前的全局替換過程中沒有被替換掉。

。。。 

暫未弄清楚之前Git ,分支改動被覆蓋的問題

繼續研究畢設即時通訊框架。

徹底解決Android9.0不能使用Http請求的問題:

在下載了Bmob官方的mod後,安裝到android9.0的手機上後,點擊註冊報錯,而在Android8.0的手機上沒有問題,查閱資料纔想起來,Android從9.0開始不支持Http網絡請求,只支持Https請求,按照一篇博客設置後,http網絡請求可以發送成功了,然而在網絡接口回調的時候App閃退了,再次查閱資料後最終完美解決。

報錯: java.net.UnknownServiceException: CLEARTEXT communication to open2.bmob.cn not permitted by network security policy

解決措施:更改網絡安全設置

1.在res文件夾下創建一個xml文件夾,然後創建一個network_security_config.xml文件,文件內容如下:

    <?xml version="1.0" encoding="utf-8"?>

    <network-security-config>

        <base-config cleartextTrafficPermitted="true" />

    </network-security-config>

2.接着,在AndroidManifest.xml文件下的application標籤增加以下屬性:

    <application

    ...

     android:networkSecurityConfig="@xml/network_security_config"/>

這樣設置後,可以使用Http請求網絡,但是網絡請求接口會導致閃退,這是GooglePlay Services方面的一個bug。

 

報錯:Java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/conn/scheme/SchemeRegistry;

解決措施:在AndroidManifest.xml文件的application標籤裏面加入

<uses-library android:name="org.apache.http.legacy" android:required="false" />

 

2019-12-18-週三

 

新學習的知識點

瞭解和學習了公司內部的快速交付框架Tpad的使用。

項目進度

無。

項目筆記

上午瞭解和學習了公司內部的快速交付平臺Tpad的使用,交付了解決的微信登錄取消後無響應的bug。下午參加了公司的員工大會,瞭解了現在公司的業務水平和互聯網形勢,以及公司未來的發展方向,着重在小視頻領域打開市場,增加用戶。晚上是公司新年晚會,沒有抽到票所以去不了現場…

 

2019-12-19-週四

 

新學習的知識點

瞭解了項目內的開發設置,相關功能和源碼。

項目進度

繼續設計了數據庫,在設計數據庫的過程中總是會出現某個屬性忘記,或者忽然想到某個功能需要新的屬性或者新表,我覺得應該先將重點放在原型圖設計上,實現原型圖後再來實現前端邏輯,在此基礎上不斷優化和完善數據庫,逐漸實現數據庫的最終版本,然後接入後端數據庫,調試前端和數據交互的邏輯,這樣能最大程度上減少數據庫設計不完善帶來的時間消耗。

項目筆記

上午優化了兩個bug,其中一個是因爲自己實現需求時 的疏忽,僅僅是替換了控件屬性,卻沒有注意返回按鈕的顏色是否符合預期, 實際上,那個返回按鈕採用的自定義控件,顏色不取決於圖片實際的顏色,而是由主題決定顏色猛版,以及字體顏色也是由主題決定的,直接修改屬性不會生效,同時驗證了一個已實現的需求,原因是因爲測試人員使用的不是最新版本,在之前的實習中也總是因爲這件事反覆和測試人員溝通,確認功能,很浪費時間,在下午開會的時候提了出來,大佬和大家一起討論了一些可行的方案。

 

2019-12-20-週五

 

新學習的知識點

學習瞭如何監聽軟鍵盤的彈出以及佈局樹的變化。

項目進度

實現了畢設的底部輸入框,重新設計了新的交互方式和動畫效果。

項目筆記

接到項目需求,更改一些視覺效果,在debug時應用閃退,一直在嘗試解決該問題,最後找到原因是同事導入的哆啦A夢第三方庫和現有的Gson解析源碼出現衝突,而在哆啦A夢gradle裏export不生效,最後在app的gradle裏export後解決了衝突,通過深入閱讀項目源碼瞭解了首頁的recyclerview加載機制,找到了需要修改的地方,實現項目需求。

 

週記

這一週本來以爲也會一直做畢設,但這周公司項目提測,新發現了很多的bug,我也接到了解決bug的需求,比較有實際意義的是解決微信登錄取消後不回調的問題,深入研究後發現微信取消登錄後會返回一個null的String對象,而對值爲null的String調用equals方法時會發生空指針移除,導致無法回調。

週三是公司的兩會,員工大會和新年晚會,去參加了員工大會,但是沒有見到Pony,不過見到了微信創始人張小龍,同時公司首席執行官也講了一下公司未來的發展方向,感覺自己加深了對互聯網這個產業的認知,也瞭解了國外相關公司的一些狀況,比較有收穫。

 

編輯於    2019-12-21-週六

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