Android编程之常识 - 混淆
4,问题集
Proguard returned with error code 1. See console
Warning: com.baidu.mapapi.utils.h: can't find referenced class android.os.storage.StorageManager
Warning: com.baidu.mapapi.utils.h: can't find referenced method 'boolean isExternalStorageRemovable()' in class android.os.Environment
Warning: com.nostra13.universalimageloader.core.decode.ImageDecodingInfo: can't find referenced field 'boolean inPreferQualityOverSpeed' in class android.graphics.BitmapFactory$Options
Warning: com.nostra13.universalimageloader.core.decode.ImageDecodingInfo: can't find referenced field 'android.graphics.Bitmap inBitmap' in class android.graphics.BitmapFactory$Options
Warning: com.nostra13.universalimageloader.core.decode.ImageDecodingInfo: can't find referenced field 'boolean inMutable' in class android.graphics.BitmapFactory$Options
You should check if you need to specify additional program jars.
Warning: there were 1 unresolved references to classes or interfaces.
You may need to specify additional library jars (using '-libraryjars').
Warning: there were 4 unresolved references to program class members.
Your input classes appear to be inconsistent.
You may need to recompile them and try again.
Alternatively, you may have to specify the option
'-dontskipnonpubliclibraryclassmembers'.
java.io.IOException: Please correct the above warnings first.
at proguard.Initializer.execute(Initializer.java:321)
at proguard.ProGuard.initialize(ProGuard.java:211)
at proguard.ProGuard.execute(ProGuard.java:86)
at proguard.ProGuard.main(ProGuard.java:492)
问题1:
com.baidu.mapapi.utils.h: can't find referenced class android.os.storage.StorageManager
其实找不到引用的这个类是第三方包里面的,而且很多时候我们只需要打乱自己的代码就行了,第三方包的代码就是否要打乱就不要管了。
我们可以使用:
-dontwarn com.xx.bbb.**
-keep class com.xx.bbb.** { *;}
参数来保持第三方库中的类而不乱,-dontwarn和-keep 结合使用,意思是保持com.xx.bbb.**这个包里面的所有类和所有方法而不混淆,接着还叫ProGuard不要警告找不到com.xx.bbb.**这个包里面的类的相关引用。
http://www.vcoo.cc/blog/android-proguard-cant-find-class/
问题2:怎么不混淆注解
-keepattributes *Annotation*
-keep class * extends java.lang.annotation.Annotation { *; }
问题3:Afinal
http://www.tuicool.com/articles/7rmmUr
问题4:混淆后,点击事件被禁
点击事件的代码
@ViewInject(id = R.id.login_check_btn, click = "onCheckLoginShow") Button mLoginBtn;
public void onCheckLoginShow(View view) {
}
原以为是因为点击事件的方法被混淆掉导致代码不能正常运行,
http://stackoverflow.com/questions/7796190/androidonclick-not-working-with-proguard
相关blog
http://blog.csdn.net/lovexjyong/article/details/24652085
http://blog.sina.com.cn/s/blog_5f1ebb8f0101lkqz.html
Android编程之常识 - 混淆的更多相关文章
- SHELL脚本编程的常识和VI常用技巧
来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...
- Intellij idea 和android studio 代码给混淆
Intellij idea 和android studio 代码给混淆 一.指令说明-optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassna ...
- 读《Android编程权威指南》
因为去年双十二购买了一折的<Android 编程权威指南(第一版)>,在第二版出来后图灵社区给我推送了第二版的优惠码,激动之余就立马下单购买电子书,不得不说Big Nerd Ranch G ...
- 菜鸟学Android编程——简单计算器《一》
菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少 ...
- 很少有人会告诉你的Android开发基本常识
原文:很少有人会告诉你的Android开发基本常识. 文章介绍了一些关于开发.测试.版本管理.工具使用等方面的知识.
- [电子书] 《Android编程入门很简单》
<Android编程入门很简单>是一本与众不同的Android学习读物,是一本化繁为简,把抽象问题具体化,把复杂问题简单化的书.本书避免出现云山雾罩.晦涩难懂的讲解,代之以轻松活泼.由浅入 ...
- 转:Android 2.3 代码混淆proguard技术介绍
ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目.官网网址是:http://proguard.sourceforge.net/. Java的字节码一般是非常容易反 ...
- android studio 实现代码混淆
=======本文章属于转载==========原文章地址:http://my.oschina.net/aibenben/blog/370985 这篇文章等是跟大家分享一在Android studio ...
- Eclipse下Android编程代码自动提示
在用Eclipse进行Android编程,为了代码自动提示,需要进行如下操作: 1.设置 java 文件的代码提示功能 打 开 Eclipse 依次选择 Window > Preferences ...
随机推荐
- docker从零开始网络(六)Macvlan
使用Macvlan网络 某些应用程序,尤其是遗留应用程序或监视网络流量的应用程序,希望直接连接到物理网络.在这种情况下,您可以使用macvlan网络驱动程序为每个容器的虚拟网络接口分配MAC地址,使其 ...
- 使用bottle进行web开发(5):Generating Content
在纯粹的 WSGI中,你的应用能返回的数据类型是十分有限的,你必须返回可迭代的字符串,你能返回字符串是因为字符串是可以迭代的,但是这导致服务器将你的内容按一字符一字符的传送,这个时候,Unicode ...
- Oracle查看被锁的表,并释放
几个相关的表 SELECT * FROM v$lock; SELECT * FROM v$sqlarea; SELECT * FROM v$session; SELECT * FROM v$proce ...
- hdu 1062(DFS||dijkstra)
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 44870 Accepted: 13259 Descripti ...
- nginx [error] open() "/usr/local/nginx/logs/nginx.pid" failed的解决
今天关闭nginx后重启不了: nginx -s reload 结果报错: nginx: [error] open() "/usr/local/nginx/logs/nginx.pid&qu ...
- a标签实现不跳转点击
<a class="tiao" href="./index.php"></a> JS实现无跳转a标签 <script type=& ...
- luogu P1772 [ZJOI2006]物流运输
题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪. ...
- 5.5(java学习笔记)TreeSet和TreeMap
1.TreeMap TreeMap是可排序的Map类,使用这个类时,TreeMap会对存放的数据进行排序. 排序是根据key来排序的,排序规则是key实现comparable接口中的compareTo ...
- 十. 图形界面(GUI)设计6.文本框和文本区
在图形界面中,文本框和文本区是用于信息输入输出的组件. 文本框 文本框(JTextField)是界面中用于输入和输出一行文本的框.JTextField类用来建立文本框.与文本框相关的接口是Action ...
- HashMap源码分析(Java8)
1. HashMap public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, ...