前记:

买了一个《精通Android Studio》本来最想看的是关于混淆导jar包的,哪知道没有,有点小失望。

好吧,自己来。

在用Android Studio开发的时候,把minifyEnabled改true后,可以导出main.jar包。用解压软件打开,发现总有android.support这个包,这个应该是系统支持包吧。

如果不做处理的话,它里面的类都会被混淆,所以为了安全起见,还是加上

-keep class android.support.** { *; }

我之前就没注意,在打含有okhttp的混淆包的时候,就出错了(:app:transformClassesAndResourcesWithProguardForRelease)。

原来okhttp里面用到了javax.annotation.Nullable和javax.annotation.ParametersAreNonnullByDefault这两个类,找不到。

1   -dontwarn javax.annotation.Nullable
2 -keep class javax.annotation.Nullable {*; }

语句1和语句2不能相互替代,语句1用于jar包和外部依赖类,语句2用于自己写的类

-dontwarn   缺省proguard会检查每一个引用是否正确,但是第三方库里面往往有些不会用到的类,没有正确引用。如果不配置的话,系统就会报错。

解法解读

-dontwarn abcdef.cc.**                           对
-dontwarn abcdef.cc.** { *; } 错
-keep class okio.** { *; } 对

proguard-rules.pro、混淆、导jar包的更多相关文章

  1. [Android]proguard重新编译和如何不混淆第三方jar包

    转载自:http://glblong.blog.51cto.com/3058613/1536516 一.ant安装.环境变量配置及验证 (一)安装ant 到官方主页http://ant.apache. ...

  2. Intellij Idea系列之导Jar包与编写单元测试(二)

     Intellij Idea系列之导Jar包与编写单元测试(二) 一.初衷 对于很多的初学者来说,Intellij如何导入jar包感到很迷惑,甚至在网上搜过相关文章之后还是云里雾里,本博客通过图文并茂 ...

  3. 说点手动导jar包的细节Referenced Libraries

    对于Referenced Libraries 若是手动,新建好Scala项目工程,这里取名为ScalaInAction 得需将Scala 2.11.8自带的,换成2.10.*版本 在其上,点击右键,B ...

  4. Maven还停留在导jar包?快来探索Nexus私服的新世界

    写在前面 Maven,学习框架之前我们都会接触到的一个工具,感觉他的定位,似乎就跟git一样,只是方便我们开发?于是自然而然的,很多小猿对于Maven都只是停留在会用的阶段,利用他来构建,打包,引入j ...

  5. 混淆Android JAR包的方法

    http://blog.csdn.net/vurtne_ye/article/details/35599491 1)导出jar包 如何在eclipse上Android工程中导出jar包?google, ...

  6. Android 混淆打包不混淆第三方jar包

    项目由于要公布,所以要混淆打包. 混淆打包流程: 1.在proguard-project.txt文件里加入不须要混淆的类和第三方的jar包   这个是保持自己包中不须要混淆的类,假设有些类调用了jni ...

  7. 【Developer Log】ProGuard扰码可执行JAR包

    在项目上线之前需要通过ProGuard来对java的class进行混淆,以避免反编译方式,来保护自己的代码.ProGuard网上有很多资料,可以参考:http://blog.csdn.net/zhan ...

  8. android studio导jar包找不到类的解决方法

    今天更新了universal-image-loader-1.9.5.jar文件,studio死活找不到其中相关的类,上网百度试了很多办法,总算解决了,具体方法跟一篇老外的帖子的差不多,这里分享下. 解 ...

  9. [Android Pro] AndroidStudio导出jar包

    reference :  http://blog.csdn.net/beijingshi1/article/details/38681281 不像在Eclipse,可以直接导出jar包.Android ...

随机推荐

  1. 【C++】正则表达式引擎学习心得

    最近参照一些资料实现了一个非常简易的正则表达式引擎,支持基本的正则语法 | + * ()等. 实现思路是最基本的:正则式->AST->NFA->DFA. 以下是具体步骤: 一. 正则 ...

  2. php71

    yum -y install php-mcrypt libmcrypt libmcrypt-devel autoconf freetype gd jpegsrc libmcrypt libpng li ...

  3. C# 关于委托

    例如: public class test:Form { //定义委托 public delegate void GetSql(string sql); //定义装载委托的属性 public GetS ...

  4. fbx模型加载的材质球路径

    选择Location为外部加载时,会通过搜索来读取外部文件 From Model's Material 搜索项目中Materials文件 [ModelName].mat 会优先搜索当前子文件夹有没有 ...

  5. http://www.bugku.com:Bugku——变量1(http://120.24.86.145:8004/index1.php)

           之前立志做出需要编码解决和时间相关的那道CTF题目,但是这次没找到,相关人士找到了麻烦告诉我一声.本次再学习一下子关于正则表达式和PHP的相关知识.开课咯-.-   刚看题目就发现提示, ...

  6. stark组件之启动【模仿Django的admin】

    首先需要在settings注册app INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib ...

  7. Django的Rbac介绍3

    今天的博客主要是记录一下如何实现左侧菜单,这里我们想实现的效果就是,如果用户有查看用户的权限,则显示查看用户的左侧菜单,如果用户有查看角色的权限,则显示查看角色的左侧菜单,如果两者都有,则需要显示两个 ...

  8. echarts中国地图散点涟漪效果

    echarts中国地图例子:http://gallery.echartsjs.com/editor.html?c=effectScatter-map 代码: var data = [{ name: ' ...

  9. swift4.2 打印devicetoken

    import UIKit import UserNotifications @UIApplicationMain class AppDelegate: UIResponder, UIApplicati ...

  10. Mac下JDK、Maven、Tomcat、Git开发安装及环境变量配置

    本文主要内容: - 1.Mac OS 10.11.6 [OS X EL Captain] - 2.Mac OS 安装Java 设置环境变量 - 3.Mac OS 安装Maven设置环境变量 - 4.M ...