`
xiaozilong88
  • 浏览: 24133 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android - proguard混淆器出错

阅读更多
按照官方说明,在发布android 2.3的时候在sdk里已经集成了proguard混淆器功能,因此只要你的sdk有proguard功能,就算你新建的是2.2或以下的项目也是可以混淆的,不

过需要copy一个proguard.cfg文件到项目根目录下。

开启混淆功能只需要在project.properties中配置下就好了,只有一句:proguard.config=proguard.cfg

然后通过eclipse export导出 或者直接项目右键 android tools进行签名或者不签名导出,都会进行混淆。


重点:

1,按照上面的方法进行导出,出现错误如:conversion to Dalvik format failed with error 1.

原因是proguard版本过低。

在android sdk的tool目录下找到proguard目录,将里面的bin目录中的proguard.bat的最后面的%*改为 %1 %2 %3 %4 %5 %6 %7 %8 %9(为什么这么改我也不知道,csdn搜索到一帖子这么提示的,并且测试成功有效);

或者你直接升级proguard版本到4.6或以上即可(下载proguard 解压lib文件夹中的3个jar包并覆盖android sdk tool中的proguard下面的lib文件夹里即可)


2,在项目中如果引用了第三方的jar包可能会混淆不成功(我就是在这个问题里面困扰了好久),出现出现错误 You should check if you need to specify additional program jars.there were 39 unresolved references to classes or interfaces.  You may need to specify additional library jars (using '-libraryjars')(通过看是某个jar中的文件的父类或者引用的接口不存在),直接在proguard.cfg中忽略该警告即可,

-dontwarn weibo4android.http.**         //这句表示忽略weibo4android.http下面的类显示的警告,是2个星号哦

最后是不是能成功混淆了呢?通过混淆proguard帮我们删除了许多无用的代码,并将变量都替换成无意义的字符如a,b,c这样的字母,就算被反编译,过来人家也只能看到这些无意义的字符,具体是什么意思,就让他去猜去吧。
分享到:
评论

相关推荐

    proguard混淆器

    ProGuard是一款强大的Java类文件混淆、优化、压缩和预校验工具,广泛应用于Android应用开发中,用于保护代码安全、减小程序体积并提高运行效率。它通过对类名、方法名和变量名进行重命名,使得代码变得难以阅读,...

    Proguard混淆Android/Java源代码

    看了好多博客论坛对proguard混淆android/java代码的介绍,自己用起来总出错。现总结具体用法步骤,并亲测无误,其中不乏参考之处还请见谅!

    proguard-elder-dictionary, 一份饱含敬意的 proguard 字典..zip

    ProGuard 字典的作用在于指导混淆过程,避免重要的类或方法被错误地混淆,导致应用运行出错。这份 "proguard-elder-dictionary" 可能包含了一些资深开发者的经验总结,提供了更安全、更有效的混淆规则。 开源的特性...

    android 混淆出错 Can't process class 解决办法

    在Android应用开发中,混淆(ProGuard)是一个重要的步骤,用于优化代码、移除未使用的类和方法,以及为发布版本提供安全保护。然而,在混淆过程中可能会遇到各种问题,其中"Can't process class"错误是常见的一种。...

    proguard_better.rar

    总之,`proguard_better.rar`这个压缩包旨在帮助开发者更好地理解和应对ProGuard混淆过程中可能出现的问题,通过学习和实践这些资料,可以提升混淆技巧,确保应用在混淆后的稳定性和安全性。在实际项目中,正确配置...

    proguard5.0

    ProGuard是Android开发中不可或缺的工具,特别是在发布应用到生产环境时,为了保护代码安全、减少内存占用和提高性能,开发者通常会使用ProGuard进行代码混淆。标题中的"proguard5.0"指的是该版本的ProGuard工具,它...

    二维码的android开发相关资源proguard

    而ProGuard是Android开发中的一个关键组件,主要用于代码混淆、优化和 Shrinking,以保护应用的安全性并减小APK体积。本文将深入探讨二维码在Android开发中的实现,以及ProGuard在其中的作用。 一、二维码开发在...

    Android代码混淆及签名.doc

    2. 保存外部 jar 里的类和方法,以免混淆时出错。 3. 涉及到网络请求 JSON 数据返回的实体类需要保存,不参与混淆,并且每个实体类都需要序列化,否则将无法解析。 Proguard.cfg 文件的配置项包括: * -...

    android混淆及报错解决.docx

    在Android中,我们通常使用ProGuard工具进行混淆。 2. **ProGuard报错解析** 错误`Proguard returned with error code 1. See console`表示ProGuard执行时出现了错误。错误提示`proguard.ParseException: ...

    proguard6.2.2.rar

    ProGuard 是一款强大的Java字节码混淆、优化、压缩和预校验工具,广泛应用于Android开发领域,用于保护应用程序代码安全、减小程序体积并提高运行效率。在Android开发过程中,ProGuard是默认集成在构建流程中的,它...

    android ant 多渠道混淆打包

    总结来说,通过Ant工具结合多渠道打包和ProGuard混淆,开发者能够高效地管理并发布多个定制化的Android应用版本,同时确保代码的安全性和优化程度。这不仅可以节省时间,也能降低手动操作带来的错误风险。

    proguard4.5beta4.tar.zip

    4. **预校验**:对于Java和Android应用,ProGuard会进行Dalvik虚拟机(Dalvik Virtual Machine,DVM)的预校验,确保混淆和优化后的代码在运行时不会出错。 在压缩包中的"proguard4.5beta4.tar.gz"文件,你需要先...

    Android-Starter:带有有用库的 Android Starter Project

    - 使用混淆工具如ProGuard或R8,减少APK大小,保护应用安全。 通过深入研究和学习`Android-Starter`项目,开发者可以掌握Android开发的基本流程、常用库的使用方法以及良好的编程实践,为后续的Android应用开发打下...

    ant混淆打包

    1. **引入必要的库**:在`build.xml`中,需要引入ProGuard,这是一个强大的Java字节码混淆器、优化器和缩小器。通过添加`<taskdef>`标签,将ProGuard的任务定义到Ant中,例如: ```xml <taskdef resource="...

    android签名出错的解决方法

    当遇到“Android签名出错”的问题时,开发者通常会面临一些常见的错误,如密钥丢失、签名不匹配或者签名过程中的配置错误。以下是一些解决此类问题的方法和详细步骤: 1. **检查Keystore文件**: - 确保你有正确的...

    Android Studio 创建 Jar包

    - 在`proguard-rules.pro`文件中,添加你需要保留的类或库的规则,防止混淆过程中出错。例如,如果你希望保留一个名为`com.example.MyClass`的类,可以添加: ``` -keep class com.example.MyClass { *; } ``` ...

    解析json类混淆,导致错误

    1.proguard中需要加入泛型支持 2.需要序列化的class 的get,set方法名不能混淆 3.第三方应用类库的jar包不要参与混淆 另外,所有需要序列化的model类一定要实现 java.io.Serializable

    安卓SDK自带混淆工具

    安卓混淆工具包,某些第三方包混淆时出错,就可以用它解决,用法:proguard.jar, 并替换你Android Sdk "tools\proguard\lib\proguard.jar

    Android最新应用开发技术及典型案例

    11. **性能优化**:包括内存优化、CPU使用率降低、启动时间缩短等,通过ProGuard或R8进行代码混淆,使用GPU Profiler分析图形性能,以及使用Systrace或Traceview进行系统追踪。 12. **多平台开发**:随着Flutter和...

    android网络访问框架NiceDayFramework

    - `proguard.cfg`:ProGuard配置文件,用于代码混淆和优化,提高应用的安全性和体积。 - `.classpath`、`.project`、`default.properties`:Eclipse或ADT项目的配置文件,定义了项目的构建路径和依赖关系。 - `...

Global site tag (gtag.js) - Google Analytics