混淆代码总结

2023-11-13

混淆代码网址很棒的网址:

1.Android项目实战(二十五):Android studio 混淆+打包+验证是否成功

2.Android Studio(十一):代码混淆及打包apk

3.Android代码混淆之混淆规则

4.Error:warning: Ignoring InnerClasses attribute for an anonymous inner class

5.Android App 混淆、打包、错误日志追踪

6.Android分享:代码混淆那些事

7.关于混淆的好多网址及问题:

配置Android sdk:

把sdk目录下的platform-tools和tools路径配置到path中,用分号间隔

cmd输入adb或者是android -h说明配置成功

反编译:

1.apk重命名为zip,复制classes.dex到dex2jar-2.0文件夹下

2.cmd执行cd C:\Users\27c1\Desktop\dex2jar-2.0\dex2jar-2.0----enter

3.再输入d2j-dex2jar.bat classes.dex,ok,多了一个classes.jar文件

4.jd.gui.exe打开上边那个jar文件就是Java代码

android在打包的时候,应用程序会进行代码优化,优化的过程就把注解给去掉了。 

在前面加上这一句,注解就可以保留了:

[java]  view plain  copy
  1. -keepattributes *Annotation*  

打包成功后app运行崩溃的处理:

#Crash信息处理--keep住源文件以及行号

-keepattributes SourceFile,LineNumberTable

#保留数据库--记住一定不要加public-----------注明:这个是加密数据库

[java]  view plain  copy
  1. -keep  class net.sqlcipher.** {*;}  
  2. -keep  class net.sqlcipher.database.** {*;}  

#autolayout--记住要写成1.4.5的依赖,1.4.3的会报AutoContentFrameLayout的错

[java]  view plain  copy
  1. -keep class com.zhy.** { *; }  
  2. -dontwarn com.zhy.**  
正式签名打包:

release.apk集成到AS-build-outputs-apk下

配置gradle的环境变量:

gradle路径:D:\Android\gradle\gradle-2.14.1

path中添加:D:\Android\gradle\gradle-2.14.1\bin

再加一个GRADLE_HOME:D:\Android\gradle\gradle-2.14.1

高德地图:

AndroidStudio获取shar1:Terminal下输入如下:

D:\>keytool -list -v -keystore d:\ddlx.jks -alias ddlx -storepass ddlxddkj -keypass ddlxddkj

关于libs下jar包的问题:

将jar包复制到libs下,右键add as library,build.gradle下就会有compile file(__.jar)

如果有这句话,libs下自动加载

[java]  view plain  copy
  1. sourceSets {   
  2.     main { jniLibs.srcDirs = ['libs'] }  
  3. }  

如果没有,单独 compile file

切记:

哎呀  微信分享不花钱    微信支付是要花钱的呀   阿西吧~

[java]  view plain  copy
  1. #mob  
  2. -keep class android.net.http.SslError  
  3. -keep class android.webkit.**{*;}  
  4. -keep class cn.sharesdk.**{*;}  
  5. -keep class com.sina.**{*;}  
  6. -keep class m.framework.**{*;}  
  7. -keep class **.R$* {*;}  
  8. -keep class **.R{*;}  
  9. -dontwarn cn.sharesdk.**  
  10. -dontwarn **.R$*  
  11.   
  12. #Retrofit  
  13. -dontwarn retrofit2.**  
  14. -keep class retrofit2.** { *; }  
  15.   
  16. #RxJava RxAndroid  
  17. -dontwarn sun.misc.**  
  18. -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {  
  19.     long producerIndex;  
  20.     long consumerIndex;  
  21. }  
  22. -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {  
  23.     rx.internal.util.atomic.LinkedQueueNode producerNode;  
  24. }  
  25. -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {  
  26.     rx.internal.util.atomic.LinkedQueueNode consumerNode;  
  27. }  
统计Android studio中有多少方法数:

build.gradle(project):

[java]  view plain  copy
  1. buildscript {  
  2.     repositories {  
  3.         jcenter()  
  4.     }  
  5.     dependencies {  
  6.         classpath 'com.android.tools.build:gradle:2.2.2'  
  7.         classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.6.1'// 项目根目录build.gradle配置代码  
  8.         // NOTE: Do not place your application dependencies here; they belong  
  9.         // in the individual module build.gradle files  
  10.     }  
  11. }  
build.gradle(app):

[java]  view plain  copy
  1. apply plugin: 'com.android.application'  
  2. apply plugin: 'com.getkeepsafe.dexcount'//在项目build.gardle中配置代码  
注意:要仔细观察

最后统计的方法数是methods,feilds在项目-app-build-outputs-dexcount-release.txt中

开启混淆开关:

[java]  view plain  copy
  1. build.gradle(app):  
  2. android {  
  3.     buildTypes {  
  4.         release {  
  5.             minifyEnabled true  
  6.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  
  7.             // 不显示Log  
  8.             buildConfigField "boolean""LOG_DEBUG""false"  
  9.             //Zipalign优化  
  10.             zipAlignEnabled true  
  11.             // 移除无用的resource文件  
  12.             shrinkResources true  
  13. //            signingConfig signingConfigs.release  //使用上述签名信息  
  14.         }  
  15.         debug{  
  16.             //开启代码混淆  
  17.             minifyEnabled true  
  18.             // 移除无用的resource文件  
  19.             shrinkResources true  
  20.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  
  21.         }  
  22.     }  
  23.     lintOptions {  
  24.         abortOnError false  
  25.     }  
  26. }  
proguard配置文件:

[java]  view plain  copy
  1. # Add project specific ProGuard rules here.  
  2. # By default, the flags in this file are appended to flags specified  
  3. # in C:\Users\123\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt  
  4. # You can edit the include path and order by changing the proguardFiles  
  5. # directive in build.gradle.  
  6. #  
  7. # For more details, see  
  8. #   http://developer.android.com/guide/developing/tools/proguard.html  
  9.   
  10. # Add any project specific keep options here:  
  11.   
  12. # If your project uses WebView with JS, uncomment the following  
  13. # and specify the fully qualified class name to the JavaScript interface  
  14. class:  
  15. #-keepclassmembers class fqcn.of.javascript.interface.for.webview {  
  16. #   public *;  
  17. #}  
  18.   
  19. -optimizationpasses 5                                                           # 指定代码的压缩级别  
  20. -dontusemixedcaseclassnames                                                     # 是否使用大小写混合  
  21. -dontskipnonpubliclibraryclasses                                                # 是否混淆第三方jar  
  22. -dontpreverify                                                                  # 混淆时是否做预校验  
  23. -verbose                                                                        # 混淆时是否记录日志  
  24. -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*        # 混淆时所采用的算法  
  25.   
  26. -keep public class * extends android.app.Activity                               # 保持哪些类不被混淆  
  27. -keep public class * extends android.app.Application                            # 保持哪些类不被混淆  
  28. -keep public class * extends android.app.Service                                # 保持哪些类不被混淆  
  29. -keep public class * extends android.content.BroadcastReceiver                  # 保持哪些类不被混淆  
  30. -keep public class * extends android.content.ContentProvider                    # 保持哪些类不被混淆  
  31. -keep public class * extends android.app.backup.BackupAgentHelper               # 保持哪些类不被混淆  
  32. -keep public class * extends android.preference.Preference                      # 保持哪些类不被混淆  
  33. -keep public class com.android.vending.licensing.ILicensingService              # 保持哪些类不被混淆  
  34.   
  35. -keepclasseswithmembernames class * {                                           # 保持 native 方法不被混淆  
  36.     native <methods>;  
  37. }  
  38.   
  39. -keepclasseswithmembers class * {                                               # 保持自定义控件类不被混淆  
  40.     public <init>(android.content.Context, android.util.AttributeSet);  
  41. }  
  42.   
  43. -keepclasseswithmembers class * {  
  44.     public <init>(android.content.Context, android.util.AttributeSet, int);     # 保持自定义控件类不被混淆  
  45. }  
  46.   
  47. -keepclassmembers class * extends android.app.Activity {                        # 保持自定义控件类不被混淆  
  48.    public void *(android.view.View);  
  49. }  
  50.   
  51. ##保持自定义组件不被混淆  
  52. #-keep public class * extends android.view.View {  
  53. #    public <init>(android.content.Context);  
  54. #    public <init>(android.content.Context, android.util.AttributeSet);  
  55. #    public <init>(android.content.Context, android.util.AttributeSet, int);  
  56. #    public void set*(...);  
  57. #}  
  58.   
  59. # 保持枚举 enum 类不被混淆  
  60. -keepclassmembers enum * {  
  61.     public static **[] values();  
  62.     public static ** valueOf(java.lang.String);  
  63. }  
  64.   
  65. #保持 Serializable 不被混淆  
  66. -keepnames class * implements java.io.Serializable  
  67.   
  68. # 保持 Parcelable 不被混淆  
  69. -keep class * implements android.os.Parcelable {  
  70.   public static final android.os.Parcelable$Creator *;  
  71. }  
  72.   
  73. #保持 Serializable 不被混淆并且enum 类也不被混淆  
  74. -keepclassmembers class * implements java.io.Serializable {  
  75.     static final long serialVersionUID;  
  76.     private static final java.io.ObjectStreamField[] serialPersistentFields;  
  77.     private void writeObject(java.io.ObjectOutputStream);  
  78.     private void readObject(java.io.ObjectInputStream);  
  79.     java.lang.Object writeReplace();  
  80.     java.lang.Object readResolve();  
  81. }  
  82.   
  83. #保持枚举 enum 类不被混淆 如果混淆报错,建议直接使用上面的 -keepclassmembers class * implements java.io.Serializable即可  
  84. #-keepclassmembers enum * {  
  85. #  public static **[] values();  
  86. public static ** valueOf(java.lang.String);  
  87. #}  
  88.   
  89. #如果有引用v4包可以添加下面这行  
  90. -keep class android.support.v4.** { *; }  
  91. -keep public class * extends android.support.v4.**  
  92. -keep public class * extends android.app.Fragment  
  93.   
  94. #如果引用了v4或者v7包,可以忽略警告,因为用不到android.support  
  95. -dontwarn android.support.**  
  96.   
  97. -keepclassmembers class * {  
  98.     public void *ButtonClicked(android.view.View);  
  99. }  
  100.   
  101. #不混淆资源类  
  102. -keepclassmembers class **.R$* {  
  103.     public static <fields>;  
  104. }  
  105.   
  106. #Gson  
  107. -keepattributes Signature  
  108. -keepattributes *Annotation*  
  109. -keep class sun.misc.Unsafe { *; }  
  110.   
  111. #xUtils  
  112. -keep class * extends java.lang.annotation.Annotation {*;}  
  113. -keep class com.otb.designerassist.activity.** {*;}  
  114.   
  115. #ButterKnife  
  116. -keep class butterknife.** { *; }  
  117. -dontwarn butterknife.internal.**  
  118. -keep class **$$ViewBinder { *; }  
  119.   
  120. -keepclasseswithmembernames class * {  
  121.     @butterknife.* <fields>;  
  122. }  
  123.   
  124. -keepclasseswithmembernames class * {  
  125.     @butterknife.* <methods>;  
  126. }  
  127.   
  128. #微信分享支付登录  
  129. -keep class com.tencent.mm.sdk.** {  
  130.    *;  
  131. }  
  132.   
  133. #支付宝支付  
  134. #-libraryjars libs/alipaySDK-20161009.jar  
  135. #  
  136. #-keep class com.alipay.android.app.IAlixPay{*;}  
  137. #-keep class com.alipay.android.app.IAlixPay$Stub{*;}  
  138. #-keep class com.alipay.android.app.IRemoteServiceCallback{*;}  
  139. #-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}  
  140. #-keep class com.alipay.sdk.app.PayTask{ public *;}  
  141. #-keep class com.alipay.sdk.app.AuthTask{ public *;}  
  142.   
  143. #高德地图  
  144. #3D 地图  
  145. -keep   class com.amap.api.maps.**{*;}  
  146. -keep   class com.autonavi.amap.mapcore.*{*;}  
  147. -keep   class com.amap.api.trace.**{*;}  
  148. #定位  
  149. -keep class com.amap.api.location.**{*;}  
  150. -keep class com.amap.api.fence.**{*;}  
  151. -keep class com.autonavi.aps.amapapi.model.**{*;}  
  152.   
  153. #搜索  
  154. -keep   class com.amap.api.services.**{*;}  
  155.   
  156. #2D地图  
  157. -keep class com.amap.api.maps2d.**{*;}  
  158. -keep class com.amap.api.mapcore2d.**{*;}  
  159.   
  160. #导航  
  161. -keep class com.amap.api.navi.**{*;}  
  162. -keep class com.autonavi.**{*;}  
  163.   
  164. #Glide混淆  
  165. -keep public class * implements com.bumptech.glide.module.GlideModule  
  166. -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {  
  167.   **[] $VALUES;  
  168.   public *;  
  169. }  
  170.   
  171. # 以libaray的形式引用的图片加载框架,不想混淆(注意,此处不是jar包形式,想混淆去掉"#")  
  172. #-keep class com.nostra13.universalimageloader.** { *; }  
  173.   
  174. #适配器  
  175. -keep class com.uyac.elegantlife.adapter.**{*;}  
  176.   
  177. #二维码  
  178. #-libraryjars libs/core-3.0.0.jar  
  179.   
  180. #OkHttp  
  181. -dontwarn com.squareup.okhttp.**  
  182. -keep class com.squareup.okhttp.** {*;}  
  183. -keep interface com.squareup.okhttp.** {*;}  
  184. -dontwarn okio.**  
  185.   
  186. #小米push keep包下的所有类  
  187. -keep class com.xiaomi.push.service.receivers.NetworkStatusReceiver {*;}  
  188. -keep public class * extends android.content.BroadcastReceiver  
  189. #可以防止一个误报的 warning 导致无法成功编译,如果编译使用的 Android 版本是 23。  
  190. -dontwarn com.xiaomi.push.**  
  191. #小米push service  
  192.   
  193. #Warning:com.xiaomi.push.service.XMPushService: can't find referenced method 'void setLatestEventInfo(android.content.Context,java.lang.CharSequence,java.lang.CharSequence,android.app.PendingIntent)' in library class android.app.Notification  
  194. -dontwarn org.apache.http.**  
  195. -dontwarn android.net.http.AndroidHttpClient  
  196. -dontwarn com.google.android.gms.**  
  197. -dontwarn com.android.volley.toolbox.**  
  198.   
  199. #Warning:library class android.test.AndroidTestCase extends or implements program class junit.framework.TestCase  
  200. -dontwarn org.mockito.**  
  201. -dontwarn sun.reflect.**  
  202. -dontwarn android.test.**  
  203.   
  204. #Warning:library class org.apache.http.conn.scheme.LayeredSocketFactory extends or implements program class org.apache.http.conn.scheme.SocketFactory  
  205. -keep class org.apache.http.** { *; }  
  206. -dontwarn org.apache.http.**  
  207. -dontwarn android.net.**  
  208.   
  209. #Warning:org.junit.internal.runners.statements.FailOnTimeout: can't find referenced class java.lang.management.ManagementFactory  
  210. #-dontwarn org.hamcrest.**  
  211.   #-dontwarn android.test.**  
  212.   #-dontwarn android.support.test.**  
  213.   #  
  214.   #-keep class org.hamcrest.** {  
  215.   #   *;  
  216.   #}  
  217.   
  218. -keep class org.junit.** { *; }  
  219. -dontwarn org.junit.**  
  220.   
  221. -keep class junit.** { *; }  
  222. -dontwarn junit.**  
  223.   
  224. #-keep class sun.misc.** { *; }  
  225. #-dontwarn sun.misc.**  
  226.   
  227. #autolayout 主类继承的Activity--  
  228. #注意:autolayout要改成1.4.5的版本  
  229. -keep class * extends com.zhy.autolayout.AutoLayoutActivity  
  230.   
  231. -keep class com.zhy.** { *; }  
  232. -dontwarn com.zhy.**  
  233.   
  234. #pulltorefresh  
  235. -dontwarn com.handmark.pulltorefresh.library.**  
  236. -keep class com.handmark.pulltorefresh.library.** { *;}  
  237. -dontwarn com.handmark.pulltorefresh.library.extras.**  
  238. -keep class com.handmark.pulltorefresh.library.extras.** { *;}  
  239. -dontwarn com.handmark.pulltorefresh.library.internal.**  
  240. -keep class com.handmark.pulltorefresh.library.internal.** { *;}  
  241.   
  242. #屏蔽警告  
  243. #-ignorewarnings  
  244.   
  245. #测试签名打包后app崩溃无法运行的问题  
  246. -keepattributes EnclosingMethod  
  247.   
  248. #保留数据库工具类  
  249. -keep class com.ddgl.ddlx.utility.**{*;}  
  250.   
  251. #-keep class com.kklink.yuexia.db.**{*;}  
  252. #-keep class com.kklink.database.**{*;}  
  253.   
  254. #-keep class com.ddgl.ddlx.** { *; }  
  255. -keepattributes *Annotation*  
  256.   
  257. #保留model实体  
  258. -keep class com.ddgl.ddlx.model.**{*;}  
  259. -keep class com.ddgl.ddlx.dao.**{*;}  
  260.   
  261. #关于数据库  
  262. #保留数据库驱动--数据库驱动往往是动态加载的  
  263. -keep class * implements java.sql.Driver  
  264.   
  265. -keep  class net.sqlcipher.** {  
  266.     *;  
  267. }  
  268.   
  269. -keep  class net.sqlcipher.database.** {  
  270.     *;  
  271. }  
  272.   
  273. -keep class * extends java.util.ListResourceBundle {  
  274.     protected Object[][] getContents();  
  275. }  
  276.   
  277. -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {  
  278.     public static final *** NULL;  
  279. }  
  280.   
  281. -keepnames @com.google.android.gms.common.annotation.KeepName class *  
  282. -keepclassmembernames class * {  
  283.     @com.google.android.gms.common.annotation.KeepName *;  
  284. }  
  285.   
  286. -keepnames class * implements android.os.Parcelable {  
  287.     public static final ** CREATOR;  
  288. }  
  289. -dontwarn com.google.android.gms.**  
  290. -dontwarn com.google.common.**  
  291.   
  292. #Crash信息处理--keep住源文件以及行号  
  293. -keepattributes SourceFile,LineNumberTable  
感悟:其实并不难 只是找不到。只要用心去找bug,就一定能够找到答案,只是时间长短不同而已。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

混淆代码总结 的相关文章

  • Android:处理电话中的语音

    我目前正在寻找有关如何在 Android 上操作音频的选项 目标是在通话期间实时处理来自麦克风的音频 最好的解决方案是在本机调用中执行此操作 但重建一个电话应用程序 无 VOIP 也可以 有没有什么方法可以使用 Android API 来实
  • chrome 检查器,远程调试在我的移动应用程序上不再正常工作

    我使用 Cordova Ionic 构建了一个渐进式 Web 应用程序 三年来的大部分时间里 我一直在使用开发工具来排除故障并分析我的应用程序的内部工作原理 然而 在过去的几周里 我认为自从 Chrome 更新到 v70 以来 开发工具无法
  • android 网格视图从右到左放置项目

    我正在开发一个 Android 应用程序阿拉伯文版本 在其中一个界面中 我有 gridView 因此 要以正确的顺序显示项目 我必须从右到左显示 GridView 中的项目 当然是从上到下 为此 我尝试在 GridView 中添加这些属性
  • 有没有办法有一个屏蔽数字输入字段?

    我正在 Android 上创建一个 HTML5 应用程序 对于这个特定场景 我们有一个用于信用卡安全代码的输入字段 我们希望强制输入字段仅包含数字并被屏蔽 我没有运气搜索这个特定的案例 从我自己研究 尝试中可以看出 这不能纯粹通过 HTML
  • android 中 y + 高度必须 <= bitmap.height()

    我想从另一个创建位图 但每次尝试都会崩溃 这是错误消息 java lang IllegalArgumentException y 高度必须 这是我尝试创作的地方 public void saveBitmap Bitmap bitmapToS
  • 加载内容时在 ImageView 中使用“动画圆圈”

    我目前在我的应用程序中使用一个列表视图 可能需要一秒钟才能显示 我目前所做的是使用列表视图的 id android empty 属性来创建 正在加载 文本
  • 如何将 ThreeJS 与 PhoneGap 一起使用?

    这个探索是非常自我描述的 我已经用一个简单的 3D 立方体进行了测试 它在浏览器中运行良好 但只在模拟器中显示空白页面 有人说 Threejs 不能与 PhoneGap 一起使用 但也有人说他们使用过并且工作正常 在 Android 中 您
  • Android - 如何获取文本视图中字符的坐标

    是否可以从 Android 中的 TextView 中的字符获取 x 坐标 我不是在寻找 TextView 本身的坐标 我需要 TextView 中最后一个字符的坐标 多行 提前致谢 Java解决方案 以下是如何获得x and y特定字符的
  • XmlPullParser 异常 - 无法解决

    我有一个基本方法 ReadXML 从资产文件夹中读取 xml 文件 运行时不会引发任何异常 但在这个方法中 我调用了 doXML 方法 该方法尝试从 xml 文件中提取文本并将该文本设置到文本视图中 当 doXML 方法运行时 我不断收到以
  • 在较低的 SDK 上运行具有较高 SDK 的应用程序

    我想知道在 Android 3 0 中开发的应用程序是否可以在 Android 2 1 上运行 如果是这样 我该怎么做 如果我使用 3 0 中的库 例如片段 开发应用程序 它可以在 2 1 中使用吗 不会 但是 2 1 应用程序可以在 3
  • overridePendingTransition 显示第二个活动的速度太快

    我有 2 个活动 我想在两个活动之间创建一个动画过渡 以便两个活动的视图向上滑动 就好像第二个活动正在向上推动第一个活动一样 在我的第一个活动中我使用 Intent iSecondActivity new Intent FirstActiv
  • 在 Android 模拟器中获取互联网连接

    我有一台带有wifi连接的台式电脑 我的IP地址是192 168 12 95 网关是192 168 10 10 但是我在android模拟器中没有获得互联网连接 也就是说我无法访问internate 我也尝试过 emulator avd w
  • Android studio 找不到 Theme.AppCompat.Light.DarkActionBar [重复]

    这个问题在这里已经有答案了 我已经导入了一个Android Studio项目来自Github into Android Studio 虽然我的build gradle有dependencies dependencies compile fi
  • Firestore OncompleteListener [重复]

    这个问题在这里已经有答案了 我想看看这段代码的执行有什么错误 当我编译它时 它只返回 log 1 3 2 的值 并且我希望 log2 在 3 之前 Log d 1 antes de validar DocumentReference doc
  • python 和 android 中通过 AES 算法加密和解密

    我有用于 AES 加密的 python 和 android 代码 当我在android中加密文本时 它在python上成功解密 但无法在android端解密 有人有想法吗 Python代码 import base64 import hash
  • 自定义支持对话框片段文本颜色错误

    如果我放一个TextView在自定义对话框中 文本默认为黑色 不幸的是 支持片段对话框背景是深灰色的 灰底黑字很难读 我可以改变TextView白色或类似的东西android textColor android attr textColor
  • Android Lollipop:将应用程序小部件添加到主屏幕时启动器崩溃

    添加小部件时 启动器在 Android Lollipop 上崩溃 并显示以下消息 在以前的 Android 版本上运行良好 编辑 这只发生在横向方向 12 16 12 35 10 208 E AndroidRuntime 960 java
  • 对于双核手机,availableProcessors() 返回 1

    我最近购买了一部 Moto Atrix 2 手机 当我尝试查看手机中的处理器规格时 Runtime getRuntime availableProcessors 返回 1 proc cpuinfo 也仅包含有关处理器 0 的信息 出于好奇
  • android 填充包含片段的布局

    问题是什么 我如何膨胀包含片段的布局 我不知道错误消息的含义 请帮我 谢谢 错误信息 09 01 18 44 58 698 E AndroidRuntime 20617 Caused by java lang IllegalArgument
  • 如何在顶部工具栏的购物车图标上添加商品编号?安卓

    I saw some apps made it So I am intersting at how to do it I believe there must be some trick way to do it Example 我在菜单文

随机推荐

  • python基础01元组 函数

    1 可变类型的数值变化 是通过方法来实现的 2 如果给一个可变类型的变量 赋值一个新的数据 引用 id 会修改 3 不可变类型数据可以作为字典的键值对key 可变类型不能 元组 小括号 只可增删不可修改 函数 def print menu
  • QT 多层视图(视图叠加显示)

    之前做Mac应用开发 视图层是可以上下叠加显示的 然后回到QT这边开发 发现QT的布局上不能叠加显示 于是写了个简单的可以叠加QWidget的小Demo 这是调用的代码 include mainform h include multilay
  • 玉柴spn码故障对照表_卡车处理故障后不烧尿素也头疼!

    之前说到车辆烧尿素太多 让很多车主头疼 但是如果车辆不烧尿素了也会让车主头疼 若长期不使用SCR系统拆掉 系统里的化学物质会很快被氧化 尿素喷嘴也会堵塞 致使整套系统报废 更换一套SCR系统的成本比消耗尿素的成本要贵得多 化学物质发生氧化
  • 常用中间件控制台默认登陆

    以下用本地127 0 0 1作为ip前缀方便本地直接点击跳转使用 实际部署时替换该ip即可 中间件名称 访问地址端口 默认账号密码 rabbitmq http 127 0 0 1 15672 guest guest activemq htt
  • 有各组方差怎么算组间平方和_组内离差平方和,组间离差平方和与总离差平方和各反映了什么?...

    展开全部 组内离差平方和反映了试验过程中各种随机因素所引起32313133353236313431303231363533e59b9ee7ad9431333431353331的试验误差 组间离差平方和反映了各组样本之间的差异程度 即由变异因
  • TortoiseGit密钥配置图文教程

    1 在 开始菜单 中找到 TortoiseGit 下的 PuTTYgen 建议直接搜索PuTTYgen 单机运行 2 点击 Generate按钮 鼠标需要在 Key区域 活动直至绿色进度条完成 切记 鼠标一定要动哦 鼠标不动的时候 绿色进度
  • 华为HCS之私有云工具FCD搭建

    华为HCS之私有云工具FCD搭建 一 FCD虚拟机创建 1 选择Vmware版本 2 选择虚拟机操作系统版本 3 虚拟机cpu配置 4 虚拟机分配内存 5 选择磁盘大小 6 指定镜像目录 7 开机安装系统 二 系统的初始配置 1 IP配置
  • Java文件的读写

    文件与流 在实际生活中 我们总要对文件进行操作 Java提供了流可以帮助我们读写文件 下面是常用的流类型结构图 在对文件的读写操作中 字节流可用于读写二进制文件 字符流用于读写文本文件 所谓二进制文件 指文件无字符编码格式 均由字节 Byt
  • SpringBoot--基础--02--配置属性

    SpringBoot 基础 02 加载配置 代码位置 https gitee com DanShenGuiZu learnDemo tree mysql mybaties DB springboot learn springboot 1 1
  • springboot整合Swagger2 被拦截问题解决

    springboot整合Swagger2 被拦截问题解决 本来是想整合swagger3 弄了3个依赖进来 就一直注入不进来 推测版本的问题 springboot公司项目是2 0 6的 就先把swagger3降到2 项目用的是OAuth2 就
  • 程序员/媛的日常——coding/debugging/查bug/改bug

    程序员 媛的日常 coding debugging 查bug 改bug 一 在面对失误而带来的指责和沮丧时 你是如何做的 二 发生了失误之后 你是如何找到问题的 如何避免只看到表面现象而忽略了根本问题 三 在工作中我们应该怎么做才能降低失误
  • 矩阵分析

    看了这个视频后觉得自己是个没有学习过线代的人啊 感谢七月算法讲解的矩阵应用 本篇博文完全用作个人学习笔记 一 我们通过图形化来描述一下矩阵的行列和转置间的关系和特性 1 矩阵的行视图 我们以矩阵的每一行为组合 会得到一个几何图案 比如下图中
  • 深度学习初探——yolov3经典目标检测算法

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 目录 前言 一 yolov3的网络结构 二 利用Darknet 53进行特征提取 1 残差网络 2 代码实现 三 利用FPN特征金字塔进行特征增强和预测输出 1 利用FPN特
  • LeetCode 面试最热100题 跳跃游戏

    作者 Linux猿 简介 CSDN博客专家 华为云享专家 Linux C C 云计算 物联网 面试 刷题 算法尽管咨询我 关注我 有问题私聊 关注专栏 点击关注 LeetCode面试必备100题 专栏 优质好文持续更新中 目录 一 题目描述
  • python3解决读取到的邮件中的乱码问题

    点进来看这篇文章的你 是不是有这种情况 不管用什么模块去读取邮箱中的邮件 都能看到类似 gb18030 B 1vfM4g 这样的仿佛像乱码一样的东西 你比如说这样子的 X QQ FEAT YSSoAXAEBlFn3rgysgiXLVc6JA
  • 关于虚拟机下Linux的opencv获取摄像头图像问题

    最近在虚拟机Ubuntu14 04下运行PTAM 配置过程参考 http makaidong com zhuquan945 1 129074 12259634 html 在最后运行时想使用购买外接USB摄像头 YUYV 进行实验 但发现怎么
  • 搭建Hexo博客+部署到Github

    前言 本文章灵感来源于B站up主codesheep 以及视频评论区里的课代表的博客 为了学习总结经验 经过一定修改和总结后写下了这篇文章 感谢他们的指导 目录 前言 一 准备工作 安装Node js 和 Git 1 安装Node js 2
  • 欧姆龙 CJ1W-SCU 无协议功能

  • dcdiag诊断域控制信息注解

    Domain Controller Diagnosis Performing initial setup 初始化安装 Verifying that the local machine test w301 is a DC 检验目标主机test
  • 混淆代码总结

    混淆代码网址很棒的网址 1 Android项目实战 二十五 Android studio 混淆 打包 验证是否成功 2 Android Studio 十一 代码混淆及打包apk 3 Android代码混淆之混淆规则 4 Error warn