Android 生成Release版本時,混淆問題的解決
今天在生成release版本的apk時,出現了編譯失敗,百度以後,發現是混淆配置出現錯誤
Warning:com.squareup.picasso.OkHttpDownloader: can't find referenced class
Warning:com.squareup.picasso.OkHttpDownloader: can't find referenced class com.squareup.okhttp.Request
.........
Warning:okio.Okio: can't find referenced class java.nio.file.Files
Warning:okio.Okio: can' t find referenced class java.nio.file.Path
.........
Warning:rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef: can't find referenced class sun.misc.Unsafe
Warning:rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef: can't find referenced
從上面的log中可以看到有三個包配置不正確,第一個是okhttp,第二個是okio,第三個是rx,開啟app下proguard-rules.pro,配置如下內容,便可以編譯成功。
okhttp
# okhttp
-keepattributes SourceFile,LineNumberTable
-keep class com.parse.*{ *; }
-dontwarn com.parse.**
-dontwarn com.squareup.picasso.**
-keepclasseswithmembernames class * {
native <methods>;
}
okio
# Okio
-dontwarn com.squareup.**
-dontwarn okio.**
-keep public class org.codehaus.* { *; }
-keep public class java.nio.* { *; }
rx
# RxJava RxAndroid
-dontwarn sun.misc.**
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
long producerIndex;
long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
rx.internal.util.atomic.LinkedQueueNode producerNode;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
rx.internal.util.atomic.LinkedQueueNode consumerNode;
}
通過如上配置,可以正常生成release版本的apk了。以後出現類似的問題,只要找到對應的混淆規則新增,就可以了。。。希望對大家有用,下一篇文章,我會整理一下一些實用頻率很高的混淆配置。
相關推薦
Android 生成Release版本時,混淆問題的解決
今天在生成release版本的apk時,出現了編譯失敗,百度以後,發現是混淆配置出現錯誤 Warning:com.squareup.picasso.OkHttpDownloader: can't find referenced class Warning:c
C#.NET常見問題(FAQ)-如何生成release版本的程序,生成debug版本的程序
項目 style bug 在頂部 image 還要 es2017 郵箱 在線 除了右擊項目在生成中配置改成Release還要在頂部切換成Release ? ?更多教學視頻和資料下載,歡迎關註以下信息: 我的優酷空間: http://i.youku.com
安裝mysql 8.0版本時,使用front連接報1251錯誤或者navicat 連接報錯2059解決方案
with clas 解決 ring class func eve 刷新 IE 這個錯誤出現的原因是在mysql8之前的版本中加密規則為mysql_native_password,而在mysql8以後的加密規則為caching_sha2_password。 解決此問題有兩
安裝mysql 8.0版本時,使用navicat 連接報1251錯誤解決方案
sha cal TE roo oot string XP 規則 nat 今天安裝mysql8 使用navicat 連接時報錯 1251 這個錯誤出現的原因是在mysql8之前的版本中加密規則為mysql_native_password,而在mysql8以後的加密規則為ca
正確生成浮點型的方法,解決sqlachemy Float浮點型的坑,生成float型別時,長度和精度均為0,導致查詢不到結果!
問題描述 在使用flask_sqlachemy時,給price欄位選擇了Float型別,資料庫用的mysql,生成資料庫表後,發現 from sqlalchemy import Float,Column price = Column(Float,default=0.00) &
PowerDesigner 15進行逆向工程生成資料庫圖表時,註釋的comment的生成,解決PowerDesigner逆向工程沒有列註釋
使用PowerDesigner預設配置逆向工程是沒有註釋(name列為英文,comment列是空的),這樣的不方便檢視欄位具體是什麼意義,將註釋一同匯出,方便檢視欄位具體的意義,如下圖 註釋列匯出步驟 1、新建指令碼DBMS,選擇選單:Tools→Resou
Android打release包時按Home鍵,再按桌面icon時出現app重新啟動的問題
在專案開發中遇到了按Home鍵,再按桌面icon時出現app重新啟動的問題,這個時候我們將啟動的那個activity(一般為廣告頁面GuideActivity)的啟動模式android:launchMode="singleTask"去掉即可,但是有些APP很奇怪,debug版
解決Android 原始碼編譯“audio_processing_impl”時,報錯“fatal error: list: No such file or directory”問題
我的系統是Linux Mint 17,使用的平臺是Tiny4412,編譯的是友善之臂提供的Android 4.2.2 原始碼。之前編譯沒有問題,今天編譯時,報出這個錯誤,查遍 百度/Google 都沒解決,後來發現是我之前手賤多配置了一個環境變數 NDK_ROOT 導致的問
解決Android首次啟動APP時,顯示空白頁或者黑屏時間長的問題
問題描述: 第一次啟動app(冷啟動,如果不明白冷啟動和熱啟動的話,可以百度一下),會出現白屏或者黑屏,而且當代碼量增多的時候,出現的時間很長。這樣的使用者體驗多不好。下面我寫了一個小例子,先模擬一下該問題的效果圖,以及解決問題後的效果圖。處理前有空白頁如圖1,
Android Studio在打包release版本時遇到國際化的問題
在要打包的專案的build.gradle中的android{}中新增如下程式碼即可解決 lintOptions{ checkReleaseBuilds falseabortOnError falsedisable 'MissingTranslation'}即可解決
徹底解決,Android Studio每次版本升級,Refresing 卡住的問題
每次升級Android studio,gradle都會相應的升級,你當前的專案就會重新構建,然而,如下圖1所指 每次都會要Refreshing很久,這裡它主要是重新去按照2所指的地址去下載最新的g
VS2010 開發VC++ 生成release版本動態庫配置
方案 .com ima AS 分享圖片 In inf 分享 ++ 1、選擇項目→屬性→配置管理器→活動解決方案配置→選擇Release →關閉。 2、常規→輸出目錄(中間目錄)填入輸出路徑。 3、重新生成。 VS2010 開發VC++ 生成release版本動態庫配置
VS 提示:請考慮使用 app.config 將程式集“XXX”從版本“XX”重新對映到版本“XX”,以解決衝突並消除警告。
具體提示如下: 請考慮使用 app.config 將程式集“System.Web.Http.WebHost, Culture=neutral, PublicKeyToken=31bf3856ad364e35”從版本“5.0.0.0”[D:\Code…(專案路徑就省略了)\bi
Android 應用在後臺時,跳轉 Activity 會自動切換應用至前臺
本部落格 demo 見:demo。 平常用手機的時候經常碰到這種情況,用首屏廣告舉個栗子~很多應用都會有首屏廣告 activity A,假設此應用是 app C,如果此時要使用別的應用,就會使得 app C 在後臺執行。可是當 
Android換Gradle版本時碰到的問題
我們在換Gradle時總會碰到如下的情況: Error:Failed to find target with hash string ‘android-28’ in: Install missing platform(s) and sync project 提示我們確實 android-xx
android 相容不同版本懸浮框許可權解決
1,4.4以下使用TYPE_SYSTEM_ALERT,需要許可權android.permission.SYSTEM_ALERT_WINDOW; 2,4.4到7.0,使用TYPE_TOAST,不需要額外許可權;(既然TYPE_TOAST不需要
mybatis generator生成對映檔案時,執行多次,導致xml檔案生成錯誤,設定table schema也無效
在maven中集成了MBG以後,生成xml等對映檔案時,會生成多次。由於xml檔案是追加,導致xml檔案有多次生成的結果。 原因: 1):在資料庫伺服器上,不同的資料庫中表名相同的表多張。(有幾個同名的表,就會生成幾次) 2):mysql驅動升級到8.x,造成設定sch
Android Studio3.X版本之後,Android SDK的安裝
Android Studio3.X的版本,老出問題 但很多問題,都是由於無法訪問谷歌伺服器造成的 前段時間AS忽然間崩潰,解除安裝重灌,卻發現SDK怎麼都裝不上 後來才知道,原來AS3.X之後的安裝包不
自己生成aar包時,含有第三方依賴,匯入專案使用
自己專案中需要打包一個aar,這個aar含有第三方依賴。生成aar後,匯入主專案,結果報錯,第三方的類找不到。。。。 aar生成時,包含有第三方依賴,比如第三方的OkGo;aar專案的gradle: api ('com.lzy.net:okgo:3.0.4'){tran
Eclipse 使用 android.support.v7 包時,遇到的問題s
在編寫android的程式碼時經常需要考慮低版本的相容性問題,eclispe中建立android工程minimum sdk的版本小於target的版本時,有可能會自動生成一個appcompat_v7的工程。 1. Android 匯入android.suppo