`
w1985chun
  • 浏览: 106562 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

android 代码混淆问题解决

 
阅读更多

android代码混淆报错总结:java.io.IOException: Please correct the above warnings first

[2012-06-01 14:06:03 - geoTest6.3] Warning: org.apache.log4j.lf5.viewer.LogFactor5InputDialog$1: can't find referenced class java.awt.event.KeyAdapter
[2012-06-01 14:06:03 - geoTest6.3] Warning: org.apache.log4j.lf5.viewer.LogFactor5InputDialog$1: can't find referenced class java.awt.event.KeyEvent
[2012-06-01 14:06:03 - geoTest6.3] Warning: org.apache.log4j.lf5.viewer.LogFactor5InputDialog$1: can't find referenced class java.awt.Dialog
[2012-06-01 14:06:03 - geoTest6.3] Warning: org.apache.log4j.lf5.viewer.LogFactor5InputDialog$1: can't find referenced class java.awt.event.KeyAdapter
[2012-06-01 14:06:03 - geoTest6.3] Warning: org.apache.log4j.lf5.viewer.LogFactor5InputDialog$1: can't find referenced class java.awt.event.KeyEvent
[2012-06-01 14:06:03 - geoTest6.3] Warning: org.apache.log4j.lf5.viewer.LogFactor5InputDialog$1: can't find referenced class java.awt.Dialog
[2012-06-01 14:06:03 - geoTest6.3] Warning: org.apache.log4j.lf5.viewer.LogFactor5InputDialog$1: can't find referenced class java.awt.event.KeyEvent
[2012-06-01 14:06:03 - geoTest6.3] Warning: org.apache.log4j.lf5.viewer.LogFactor5InputDialog$1: can't find referenced class java.awt.event.KeyEvent
[2012-06-01 14:06:03 - geoTest6.3]       You should check if you need to specify additional program jars.
[2012-06-01 14:06:03 - geoTest6.3] Warning: there were 1773 unresolved references to classes or interfaces.
[2012-06-01 14:06:03 - geoTest6.3]          You may need to specify additional library jars (using '-libraryjars'),
[2012-06-01 14:06:03 - geoTest6.3]          or perhaps the '-dontskipnonpubliclibraryclasses' option.
[2012-06-01 14:06:03 - geoTest6.3] Warning: there were 1 instances of library classes depending on program classes.
[2012-06-01 14:06:03 - geoTest6.3]          You must avoid such dependencies, since the program classes will
[2012-06-01 14:06:03 - geoTest6.3]          be processed, while the library classes will remain unchanged.
[2012-06-01 14:06:03 - geoTest6.3] java.io.IOException: Please correct the above warnings first.
[2012-06-01 14:06:03 - geoTest6.3]  at proguard.Initializer.execute(Initializer.java:308)
[2012-06-01 14:06:03 - geoTest6.3]  at proguard.ProGuard.initialize(ProGuard.java:210)
[2012-06-01 14:06:03 - geoTest6.3]  at proguard.ProGuard.execute(ProGuard.java:85)
[2012-06-01 14:06:03 - geoTest6.3]  at proguard.ProGuard.main(ProGuard.java:499)
[2012-06-01 14:12:33 - geoTest6.3] Proguard returned with error code 1. See console

解决办法:因为采用了三方的jar包,需要我们在 proguard.cfg 中添加"-dontwarn"

如下:

proguard.cfg 全部配置

-dontwarn 
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

可解决! 

 

文章来源:http://www.cnblogs.com/zfrr/archive/2012/06/01/2530744.html

分享到:
评论

相关推荐

    Android代码混淆前后分析

    本文将深入探讨Android代码混淆的前因后果、原理以及如何实施。 首先,我们来理解什么是代码混淆。代码混淆是将源代码转换成一种难以理解和阅读的形式,通常通过重命名变量、方法和类名,以及压缩和优化代码结构来...

    android gson 混淆代码 问题

    然而,在混淆代码时,可能会遇到一些问题,导致Gson无法正常工作。本文将深入探讨这些问题及其解决方案。 首先,我们要明白混淆的主要目的是为了减小应用的大小并增加反编译的难度。它会重命名类、方法和变量,这...

    Android 4.0及以上版本 ProGuard 代码混淆

    ### Android 4.0 及以上版本 ...通过上述步骤,可以有效地解决在 Android 4.0 及以上版本中遇到的 ProGuard 代码混淆问题,无论是对于简单的项目还是那些使用了复杂第三方库的应用程序,都能提供有效的指导和支持。

    代码混淆—关于android被反编译的两种解决方案

    本文将深入探讨两种防止Android应用被反编译的策略:代码混淆和使用安全工具。 首先,我们来了解一下什么是代码混淆。代码混淆是一种通过改变代码的可读性来增加其复杂性的技术,主要是通过对变量名、函数名和类名...

    Android-Androidstudio多module混淆成一个Jar

    混淆是为了解决Java类库的可移植性和安全性问题。在`proguard-rules.pro`文件中,你需要定义混淆规则,例如保留某些类、方法或者注解不被混淆。例如: ``` -keep public class * { public protected *; } -...

    Android代码-混淆详解

    本文将深入探讨Android代码的混淆详解,同时提及9patch图片的一些常见问题。 首先,我们来了解一下**Proguard**,它是Android开发中的一个静态代码分析工具,主要用于优化、压缩、混淆和预览APK。Proguard的主要...

    java代码混淆器proGuard

    - 对于Android应用,ProGuard是默认的代码混淆工具,防止恶意用户分析和篡改代码。 - 对于服务器端的Java应用,混淆可以增强代码的保密性,减少知识产权泄露的风险。 - 对于开源项目,混淆可以保护作者的劳动成果...

    Android Java代码混淆工具:ProGuard简介及使用.docx

    ### Android Java代码混淆工具:ProGuard的深度解析与实践 #### 概述 在软件开发领域,代码混淆是一项重要的安全措施,特别是在移动应用开发中,它能够保护源代码不被轻易逆向工程,从而增强应用的安全性。在...

    web代码混淆方案.混淆js代码,压缩css代码

    标题和描述中提到的"web代码混淆方案.混淆js代码,压缩css代码"正是针对这两个问题提出的解决方案。混淆JavaScript (JS) 和压缩CSS代码不仅可以防止他人轻易地阅读和复制你的源代码,还可以有效地减少网络传输的数据...

    Android SO文件保护OLLVM混淆加固——混淆篇(二)

    总的来说,OLLVM混淆是提升Android应用安全性的有效手段之一,通过混淆技术,可以有效降低代码被逆向分析的风险。然而,混淆并非一劳永逸的解决方案,开发者应结合多种安全策略,以构建全方位的安全防线。

    android实现一键反混淆

    需要注意的是,虽然一键反混淆能够帮助我们理解和解决混淆后的代码问题,但并不是所有情况都能完美还原。有些高级混淆策略可能使得完全恢复原始代码变得困难。因此,在编写代码时,推荐遵循良好的命名规范和文档化...

    android混淆编译代码 防止反编译

    本文将详细介绍如何在Android项目中进行代码混淆,以防止反编译。 首先,我们需要在项目文件中进行配置。在Android项目中,找到`project.properties`文件,通常位于项目的根目录下。在文件的最后添加一行`proguard....

    【android开发】混淆打包proguard模板

    在Android应用开发中,为了提高应用的安全性和优化代码体积,开发者常常会进行代码混淆和打包。ProGuard是一款强大的Java字节码混淆、优化、预校验和分析工具,它可以为我们的Android项目提供必要的保护,防止恶意...

    解决android中混淆代码签名导出报错的proguard.cfg

    解决android中混淆代码签名导出报错的proguard.cfg 第三方jar包,可类似 -libraryjars libs/android-support-v4.jar 添加在文件中

    android代码大全7

    《Android代码大全7》是针对Android开发的一份综合资源,涵盖了Android编程的多个重要方面,旨在帮助开发者深入理解和掌握Android应用开发技术。本资源包含了丰富的示例代码、实践项目以及详细的解释,对于初学者和...

    Android 混淆配置

    在Android开发过程中,为了保护应用的安全性和优化代码体积,开发者通常会使用ProGuard或R8工具进行代码混淆。本文将详细解析Android混淆配置的相关知识点,包括混淆的目的、配置原理、常用配置指令以及注意事项。 ...

    android library文件混淆

    6. 配置 Class Obfuscation Dictionary,以解决类混淆的问题。 7. Optimization 界面(可以不选择优化)。 8. 选择正确的 target JDK 版本,否则可能出现异常错误。 三、混淆过程 在完成配置后,点击“Process”...

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

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

    android混淆及报错解决.docx

    然而,混淆过程中可能会遇到一些问题,本篇文章将详细讲解Android混淆的原理、步骤以及如何解决常见的报错。 1. **混淆的基本原理** 混淆是通过改变类名、方法名、变量名来达到代码加密的效果,同时优化代码,移除...

    Android应用开发之代码混淆

    本文将详细介绍Android代码混淆的原理、配置和应用。 首先,混淆器,如ProGuard,是一个用于Java字节码的工具,它的主要功能包括删除未使用的代码、优化代码结构、压缩资源以及重命名类、方法和字段,使其变得难以...

Global site tag (gtag.js) - Google Analytics