測試環境下,**都執行的好好的,沒有bug,但是一打包成生產環境,有些功能就實現不出來了——不知道有沒這種情況,哈哈哈,心累,,遇到了好幾次了,如果測試下沒問題,到了生產環境就有問題,那麼很大可能就是—部分**被混淆了(在你開啟**混淆後),像我們經常使用第三方的,一定要及時的加上作者備註的混淆說明,不然有時候忘記了,找半天找不到問題所在,那就很無語了。
偏偏有些,,,**混淆說明也沒有。。。這個時候就要注意了,需要自己找哪些類被混淆了。就像我之前用輕量級的資料庫lite-orm。
在用於建立table表的bean類中使用了
// 指定自增,每個物件需要有乙個主鍵
@primarykey(assigntype.auto_increment)
在混淆後,這個primarykey介面被混淆掉了。
在pro guard-rules中新增如下**,將lite-orm-1.7.0.jar包中包名下的類全都不要混淆
-dontwarn com
.litesuits
.orm.**
-keep class com
.litesuits
.orm.**
同樣的,,,在下午發布生產包的時候,測試了pingpp招行一網通支付,在輸入了銀行卡賬號及一些資訊後,輸入支付密碼時,,,軟鍵盤居然不能彈框,,,,,為什麼我打了這麼多,,,,因為,,,,
於是乎又重新看了pingpp的開發文件,,該配置的都配置了,混淆規則也新增了,但是還是出現了問題,那麼其中彈軟鍵盤的乙個activity叫pbkeyboardactivity,估計問題就是出在這個類上,於是對pingpp下cmbkeyboard.jar包下的類都新增不被混淆
-dontwarn cmb.pb.**
-keep class
cmb.pb.**
果然就沒問題了,
一般常見的混淆規則我們都知道,但是當接入第三方或者別人的庫時,測試和生產環境下有出入,那麼第一想法很有可能就是有些類被混淆了,當然如果你沒有開啟混淆功能,那肯定沒事啦。
轉了一篇android 專案的**混淆,android proguard 使用說明還是很詳細的。
招行一網通支付接入
下面是總結的一些注意點 1,一開始就慢慢看文件吧,最後發現對應於我提到的需求,簡單的話只需要實現乙個介面就行了,但對於要申 請生產金鑰來說,還有一些介面是必須要實現的。2,對於簽約和支付只需要把一網通支付api的介面實現好就行。但有些引數需要注意一下,第一,訂單號需要 自己實現並把引數傳過去,第二,...
一 網路協議概觀
訊號的傳輸總要符合一定的協議 protocol 比如說長城上放狼煙,是因為人們已經預先設定好狼煙這個物理訊號代表了 敵人入侵 這一抽象訊號。這樣乙個 狼煙 敵人入侵 就是乙個簡單的協議。協議可以更複雜,比如摩爾斯碼 morse code 使用簡訊號和長訊號的組合,來代表不同的英文本母。比如sos 代...
TCP IP 一 網路協議
網路協議就是 一套 通用規則,用來幫助定義複雜資料傳輸的過程。資料傳輸從一台計算機上的應用程式開始,通過計算機網路硬體,經過 傳輸介質到正確目的地,然後上傳到目的地計算機網路硬體,最後 到達負責接收的應用程式。tcp ip 協議定義了網路通訊過程,更重要的是,定義了資料單元 的格式和內容,以便接收計...