proguard-rules.pro 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538
  1. # Add project specific ProGuard rules here.
  2. # You can control the set of applied configuration files using the
  3. # proguardFiles setting in build.gradle.
  4. #
  5. # For more details, see
  6. # http://developer.android.com/guide/developing/tools/proguard.html
  7. # If your project uses WebView with JS, uncomment the following
  8. # and specify the fully qualified class name to the JavaScript interface
  9. # class:
  10. #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
  11. # public *;
  12. #}
  13. # Uncomment this to preserve the line number information for
  14. # debugging stack traces.
  15. #-keepattributes SourceFile,LineNumberTable
  16. # If you keep the line number information, uncomment this to
  17. # hide the original source file name.
  18. #-renamesourcefileattribute SourceFile
  19. # androidX混淆
  20. -keep class com.google.android.material.** {*;}
  21. -keep class androidx.** {*;}
  22. -keep public class * extends androidx.**
  23. -keep interface androidx.** {*;}
  24. -dontwarn com.google.android.material.**
  25. -dontnote com.google.android.material.**
  26. -dontwarn androidx.**
  27. -optimizationpasses 5
  28. -dontusemixedcaseclassnames
  29. -dontskipnonpubliclibraryclasses
  30. -dontskipnonpubliclibraryclassmembers
  31. -dontpreverify
  32. -verbose
  33. -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
  34. -keep public class * extends android.app.Activity
  35. -keep public class * extends android.app.Application
  36. -keep public class * extends android.app.Service
  37. -keep public class * extends android.content.BroadcastReceiver
  38. -keep public class * extends android.content.ContentProvider
  39. -keep public class * extends android.app.backup.BackupAgentHelper
  40. -keep public class * extends android.preference.Preference
  41. -keep public class com.android.vending.licensing.ILicensingService
  42. -keepattributes Signature
  43. #qq
  44. -keep class * extends android.app.Dialog
  45. -keep class com.tencent.open.TDialog$*
  46. -keep class com.tencent.open.TDialog$* {*;}
  47. -keep class com.tencent.open.PKDialog
  48. -keep class com.tencent.open.PKDialog {*;}
  49. -keep class com.tencent.open.PKDialog$*
  50. -keep class com.tencent.open.PKDialog$* {*;}
  51. #umeng
  52. -keep class com.umeng.** {*;}
  53. -keep public class * extends com.umeng.**
  54. -keep public class com.umeng.fb.ui.ThreadView {
  55. }
  56. #R文件
  57. -keep class **.R$* {*;}
  58. #忘了可能是微博
  59. -dontwarn sdk.**
  60. -keep class sdk.** { *; }
  61. #微信
  62. -keep class com.tencent.mm.opensdk.** {
  63. *;
  64. }
  65. -keep class com.tencent.wxop.** {
  66. *;
  67. }
  68. -keep class com.tencent.mm.sdk.** {
  69. *;
  70. }
  71. #jackson
  72. -keep class com.fasterxml.jackson.annotation.** {*;}
  73. #支付宝
  74. -keep class com.alipay.android.app.IAlixPay{*;}
  75. -keep class com.alipay.android.app.IAlixPay$Stub{*;}
  76. -keep class com.alipay.android.app.IRemoteServiceCallback{*;}
  77. -keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
  78. -keep class com.alipay.sdk.app.PayTask{ public *;}
  79. -keep class com.alipay.sdk.auth.AlipaySDK{ public *;}
  80. -keep class com.alipay.sdk.auth.APAuthInfo{ public *;}
  81. -keep class com.alipay.mobilesecuritysdk.*
  82. -keep class com.ut.*
  83. -keepattributes InnerClasses,EnclosingMethod
  84. -keep public class com.qianyu.diaochan.R$*{
  85. public static final int *;
  86. }
  87. -dontwarn android.support.v4.**
  88. -keep class android.support.v4.** { *; }
  89. -dontwarn java.awt.**,javax.security.**,java.beans.**,javax.xml.**,java.util.**,org.w3c.dom.**
  90. -dontwarn android.net.http.**
  91. -keep public class * extends android.view.View {
  92. public <init>(android.content.Context);
  93. public <init>(android.content.Context, android.util.AttributeSet);
  94. public <init>(android.content.Context, android.util.AttributeSet, int);
  95. public void set*(...);
  96. }
  97. -keep class com.qianyu.diaochan.model.**{ *; }
  98. -keep class com.qianyu.diaochan.socket.**{ *; }
  99. -keepclasseswithmembernames class * {
  100. native <methods>;
  101. }
  102. -keepclasseswithmembers class * {
  103. public <init>(android.content.Context, android.util.AttributeSet);
  104. }
  105. -keepclasseswithmembers class * {
  106. public <init>(android.content.Context, android.util.AttributeSet, int);
  107. }
  108. -keepclassmembers class * {
  109. public <init>(org.json.JSONObject);
  110. }
  111. -keepclassmembers class * extends android.app.Activity {
  112. public void *(android.view.View);
  113. }
  114. -keepclassmembers enum * {
  115. public static **[] values();
  116. public static ** valueOf(java.lang.String);
  117. }
  118. -keep class * implements android.os.Parcelable {
  119. public static final android.os.Parcelable$Creator *;
  120. }
  121. #不混淆所有 Parcelable
  122. -keep class * implements android.os.Parcelable {*;
  123. }
  124. -keepclasseswithmembernames class * {
  125. @butterknife.* <fields>;
  126. }
  127. -keepclasseswithmembernames class * {
  128. @butterknife.* <methods>;
  129. }
  130. # Only required if you use AsyncExecutor
  131. -keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent {
  132. <init>(java.lang.Throwable);
  133. }
  134. -keepattributes *Annotation*
  135. -keep class de.greenrobot.** {*;}
  136. -keepnames class * extends android.view.View
  137. -keep class * extends android.app.Fragment {
  138. public void setUserVisibleHint(boolean);
  139. public void onHiddenChanged(boolean);
  140. public void onResume();
  141. public void onPause();
  142. }
  143. -keep class androidx.fragment.app.Fragment {
  144. public void setUserVisibleHint(boolean);
  145. public void onHiddenChanged(boolean);
  146. public void onResume();
  147. public void onPause();
  148. }
  149. -keep class * extends androidx.fragment.app.Fragment {
  150. public void setUserVisibleHint(boolean);
  151. public void onHiddenChanged(boolean);
  152. public void onResume();
  153. public void onPause();
  154. }
  155. #mp4parser
  156. -keep class * implements com.coremedia.iso.boxes.Box { *; }
  157. -dontwarn com.coremedia.iso.boxes.**
  158. -dontwarn com.googlecode.mp4parser.authoring.tracks.mjpeg.**
  159. -dontwarn com.googlecode.mp4parser.authoring.tracks.ttml.**
  160. -assumenosideeffects class android.util.Log {
  161. public static boolean isLoggable(java.lang.String,int);
  162. public static int v(...);
  163. public static int i(...);
  164. public static int w(...);
  165. public static int d(...);
  166. public static int e(...);
  167. }
  168. #okhttp
  169. -dontwarn org.codehaus.**
  170. -dontwarn java.nio.**
  171. -keep class com.squareup.okhttp.** { *;}
  172. #Glide okhttp
  173. -keep class com.bumptech.glide.integration.okhttp3.OkHttpGlideModule
  174. #Glide
  175. -keep public class * implements com.bumptech.glide.module.GlideModule
  176. -keep class * extends com.bumptech.glide.module.AppGlideModule {
  177. <init>(...);
  178. }
  179. -keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
  180. **[] $VALUES;
  181. public *;
  182. }
  183. -keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder {
  184. *** rewind();
  185. }
  186. # Disabling obfuscation is useful if you collect stack traces from production crashes
  187. # (unless you are using a system that supports de-obfuscate the stack traces).
  188. -dontobfuscate
  189. -dontshrink
  190. # okhttp
  191. -keepattributes Signature
  192. -keepattributes *Annotation*
  193. -keep class okhttp3.** { *; }
  194. -keep interface okhttp3.** { *; }
  195. -dontwarn okhttp3.**
  196. # okio
  197. -keep class sun.misc.Unsafe { *; }
  198. -dontwarn java.nio.file.*
  199. -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
  200. -dontwarn okio.**
  201. ##
  202. -dontwarn com.tencent.connect.avatar.**
  203. -keep class com.tencent.** {*;}
  204. -dontwarn com.umeng.**
  205. #RecyclerViewPager
  206. -keep class com.lsjwzh.widget.recyclerviewpager.**
  207. -dontwarn com.lsjwzh.widget.recyclerviewpager.**
  208. ########--------Retrofit + RxJava--------#########
  209. -dontwarn retrofit2.**
  210. -keep class retrofit2.** { *; }
  211. -dontwarn sun.misc.Unsafe
  212. -dontwarn com.octo.android.robospice.retrofit.RetrofitJackson**
  213. -dontwarn retrofit2.appengine.UrlFetchClient
  214. -keepattributes Signature
  215. -keepattributes Exceptions
  216. -keepclasseswithmembers class * {
  217. @retrofit.http.* <methods>;
  218. }
  219. -keep class com.google.gson.** { *; }
  220. -keep class com.google.inject.** { *; }
  221. -keep class org.apache.http.** { *; }
  222. -keep class org.apache.james.mime4j.** { *; }
  223. -keep class javax.inject.** { *; }
  224. -keep class retrofit2.** { *; }
  225. -keep class uk.co.senab.** { *; }
  226. -keep class rx.** { *; }
  227. -keep class retrofit2.** { *; }
  228. -keep class okio.** { *; }
  229. -keep class okhttp3.** { *; }
  230. -keep class u.aly.bo.** { *; }
  231. -dontnote org.apache.http.**
  232. -dontnote org.json.**
  233. -dontnote com.qianyu.diaochan.**
  234. -dontnote kankan.wheel.**
  235. -dontnote internal.org.apache.**
  236. -dontnote com.yintong.**
  237. -dontnote com.umeng.**
  238. -dontnote com.tendcloud.**
  239. -dontnote com.slider.library.**
  240. -dontnote com.sina.weibo.**
  241. -dontnote com.mp4parser.**
  242. -dontnote com.mobeta.android.**
  243. -dontnote org.apache.commons.**
  244. -dontnote com.asqw.android.**
  245. -dontnote fqcn.of.javascript.**
  246. -dontnote sun.misc.**
  247. -dontnote com.github.ksoichiro.**
  248. -dontnote com.alipay.**
  249. -dontnote com.baidu.**
  250. -dontnote com.facebook.**
  251. -dontnote com.google.gson.**
  252. -dontnote com.igexin.**
  253. -dontnote com.pingan.**
  254. -dontnote com.tencent.**
  255. -dontnote com.unionpay.**
  256. -dontnote okhttp3.**
  257. -dontnote org.jivesoftware.**
  258. -dontnote retrofit2.**
  259. -dontnote rx.internal.**
  260. -dontnote me.imid.**
  261. -dontnote u.aly.**
  262. -dontnote org.joda.**
  263. -dontnote android.inputmethodservice.**
  264. -dontnote com.handmark.pulltorefresh.**
  265. -dontnote com.googlecode.mp4parser.**
  266. -dontnote com.google.zxing.**
  267. -dontnote com.github.mikephil.**
  268. -dontnote com.example.wheelpickerlibrary.**
  269. -dontnote com.etsy.android.**
  270. -dontnote com.coremedia.iso.**
  271. -dontnote android.net.http.**
  272. -dontnote org.apache.commons.**
  273. -dontwarn org.apache.http.**
  274. -dontwarn android.net.http.AndroidHttpClient
  275. -dontwarn retrofit2.**
  276. -dontwarn sun.misc.**
  277. -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
  278. long producerIndex;
  279. long consumerIndex;
  280. }
  281. -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
  282. rx.internal.util.atomic.LinkedQueueNode producerNode;
  283. long producerNode;
  284. long consumerNode;
  285. }
  286. -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
  287. rx.internal.util.atomic.LinkedQueueNode consumerNode;
  288. }
  289. -dontwarn okio.**
  290. -dontwarn retrofit2.Platform$Java8
  291. -keepattributes *Annotation*
  292. -keepattributes Signature
  293. -keepattributes *Annotation*,Signature
  294. #google
  295. -keep public class com.google.** {*;}
  296. # don't warn joda
  297. -dontwarn org.joda.**
  298. # ARouter
  299. -keep public class com.alibaba.android.arouter.routes.**{*;}
  300. -keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
  301. #------------------ 下方是共性的排除项目 ----------------
  302. # 方法名中含有“JNI”字符的,认定是Java Native Interface方法,自动排除
  303. # 方法名中含有“JRI”字符的,认定是Java Reflection Interface方法,自动排除
  304. -keepclasseswithmembers class * {
  305. ... *JNI*(...);
  306. }
  307. -keepclasseswithmembernames class * {
  308. ... *JRI*(...);
  309. }
  310. -keep class **JNI* {*;}
  311. # --------------------------------------------------------------------------
  312. # Addidional for x5.sdk classes for apps
  313. -dontwarn dalvik.**
  314. -dontwarn com.tencent.smtt.**
  315. -keep class com.tencent.smtt.** {
  316. *;
  317. }
  318. -keep class com.tencent.tbs.** {
  319. *;
  320. }
  321. #protobuf
  322. -keep class com.google.protobuf.** {*;}
  323. -dontwarn com.google.protobuf.**
  324. #stetho
  325. -keep class com.facebook.stetho.** { *; }
  326. -dontwarn org.mozilla.javascript.**
  327. -dontwarn org.mozilla.classfile.**
  328. -keep class org.mozilla.javascript.** { *; }
  329. #json_path
  330. -keep class com.jayway.jsonpath.**{ *; }
  331. -dontwarn com.jayway.jsonpath.**
  332. -keep class org.slf4j.**{ *; }
  333. -dontwarn org.slf4j.**
  334. #adapter
  335. -keep class com.chad.library.adapter.** {
  336. *;
  337. }
  338. -keep public class * extends com.chad.library.adapter.base.BaseQuickAdapter
  339. -keep public class * extends com.chad.library.adapter.base.BaseViewHolder
  340. -keepclassmembers class **$** extends com.chad.library.adapter.base.BaseViewHolder {
  341. <init>(...);
  342. }
  343. #tutuSdk
  344. -keepclassmembers class * implements java.io.Serializable {
  345. static final long serialVersionUID;
  346. private void writeObject(java.io.ObjectOutputStream);
  347. private void readObject(java.io.ObjectInputStream);
  348. java.lang.Object writeReplace();
  349. java.lang.Object readResolve();
  350. }
  351. # keep setters in Views so that animations can still work.
  352. # see http://proguard.sourceforge.net/manual/examples.html#beans
  353. -keepclassmembers public class * extends android.view.View {
  354. void set*(***);
  355. *** get*();
  356. }
  357. # We want to keep methods in Activity that could be used in the XML attribute onClick
  358. -keepclassmembers class * extends android.app.Activity {
  359. public void *(android.view.View);
  360. }
  361. # For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
  362. -keepclassmembers enum * {
  363. public static **[] values();
  364. public static ** valueOf(java.lang.String);
  365. }
  366. -keep class * implements android.os.Parcelable {
  367. public static final android.os.Parcelable$Creator *;
  368. }
  369. -verbose
  370. -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
  371. # The support library contains references to newer platform versions.
  372. # Don't warn about those in case this app is linking against an older
  373. # platform version. We know about them, and they are safe.
  374. -dontwarn android.support.**
  375. -dontwarn org.apache.commons.**
  376. -keep class android.support.**{ *; }
  377. -keep class org.apache.commons.**{ *; }
  378. -keep class com.nostra13.universalimageloader.**{ *; }
  379. -keep class it.sephiroth.android.library.exif2.**{ *; }
  380. -keep class org.lasque.tusdk.**{public *; protected *; }
  381. -keep class org.lasque.tusdk.core.utils.image.GifHelper{ *; }
  382. -keep class org.lasque.codec.**{public *; protected *; private *;}
  383. #MPAndroidChart
  384. -dontwarn com.github.mikephil.charting.data.
  385. ##TONGDUN
  386. #-dontwarn android.os.**
  387. #-dontwarn com.android.internal.**
  388. #-keep class cn.tongdun.android.**{*;}
  389. #-keep class cn.tongdun.bugly.**{*;}
  390. # ========== chameleon 包下的类混淆配置 ==========
  391. -keep class com.didi.chameleon.** { *; }
  392. # ========== liveDataBus 混淆配置 ==========
  393. -dontwarn com.jeremyliao.liveeventbus.**
  394. -keep class com.jeremyliao.liveeventbus.** { *; }
  395. -keep class androidx.lifecycle.** { *; }
  396. -keep class androidx.arch.core.** { *; }
  397. #实体类
  398. -keep class **.model.**{*;}
  399. #实体类
  400. -keep class **.models.**{*;}
  401. #manifestPaser
  402. -keep class * implements com.xueyu.applicationproxy.ConfigModule {*;}
  403. #viewModel
  404. -keep class * extends com.yc.baselibrary.view.base.BaseVm{*;}
  405. # ServiceLoader support
  406. -keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
  407. -keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
  408. -keepnames class kotlinx.coroutines.android.AndroidExceptionPreHandler {}
  409. -keepnames class kotlinx.coroutines.android.AndroidDispatcherFactory {}
  410. # Most of volatile fields are updated with AFU and should not be mangled
  411. -keepclassmembernames class kotlinx.** {
  412. volatile <fields>;
  413. }
  414. #PictureSelector 2.0
  415. -keep class com.luck.picture.lib.** { *; }
  416. #Ucrop
  417. -dontwarn com.yalantis.ucrop**
  418. -keep class com.yalantis.ucrop** { *; }
  419. -keep interface com.yalantis.ucrop** { *; }
  420. #Okio
  421. -dontwarn org.codehaus.mojo.animal_sniffer.*
  422. # 哪个包混淆失败,就取消对那个包的混淆
  423. -dontwarn com.android.internal.**
  424. -keep class com.android.internal.** { *;}
  425. -dontwarn com.android.server.**
  426. -keep class com.android.server.** { *;}
  427. -dontwarn com.mediatek.**
  428. -keep class com.mediatek.** { *;}
  429. -dontwarn android.**
  430. -keep class android.** { *;}
  431. -dontwarn org.apache.http.**
  432. -keep class org.apache.http.** { *;}
  433. -dontwarn com.dreamlive.cn.**
  434. -keep classcom.dreamlive.cn.**{*;}
  435. -keep public class com.bumptech.glide.integration.webp.WebpImage { *; }
  436. -keep public class com.bumptech.glide.integration.webp.WebpFrame { *; }
  437. -keep public class com.bumptech.glide.integration.webp.WebpBitmapFactory { *; }