ProGuard,如何隐藏所有日志,同时混淆代码而不破坏我的应用程序?

时间:2013-06-24 05:32:07

标签: android proguard

我有一个应用程序,我正在尝试使用ProGuard进行清理和保护,我希望Obfuscate受到逆向工程的保护,我知道它仍然可以被反编译但更难阅读,我还想从日志中删除所有日志因为有很多日志对私人信息很敏感,我不希望任何人阅读。所以我做了一些事情,但它彻底摧毁了我的应用程序的功能。我怎样才能使它发挥作用?

这是我的代码

-dontoptimize


-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
    public static *** i(...);
}

-libraryjars /myexta.jar
-libraryjars /commons-codec-1.8.jar
-libraryjars /lib.jar


-keep public class com.thejs.app.** {
  public protected *;
}

-keep public class com.my.load.** {
  public protected *;
}

我有我使用的库,ProGuard如何保留所有并清理它?当我启动应用程序时,主要活动有效,所有子活动都会崩溃并且不起作用。


因为我已经深入分析了日志看起来proguard实际上打破了所有库和大多数类,应用程序无法找到它。当我在没有ProGuard的情况下导出它时,它是完美的,没有任何问题。我想做的是两件事

1.Obfuscate 2.从日志中删除整个应用程序的日志记录。

我被困在这里,我用

-assumenosideeffects class android.util.Log {
        public static *** d(...);
        public static *** v(...);
        public static *** i(...);
    }

删除日志,

不知怎的,我从来没有让它工作它总是打破我的应用程序,我只需要这两件事。由于我的应用程序非常小,因此收缩是无用且有问题的。我怎样才能让它发挥作用?

更多信息:

logcat的

06-24 14:49:58.750: E/WindowManager(1798): Activity com.thejs.app.Myactivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@309d2738 that was originally added here
06-24 14:49:58.270: E/MP3AudioPlayer(1798): Native libs libffmpeg.so not exists!
06-24 14:49:58.540: E/MP3AudioPlayer(1798): Native libs libffmpeg.so not exists!
06-24 14:49:58.750: E/WindowManager(1798):  at android.view.ViewRoot.<init>(ViewRoot.java:259)
06-24 14:49:58.750: E/WindowManager(1798):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
06-24 14:49:58.750: E/WindowManager(1798):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
06-24 14:49:58.750: E/WindowManager(1798):  at com.thejs.app.Myactivity.onPreExecute(Unknown Source)
06-24 14:49:58.750: E/WindowManager(1798):  at android.os.AsyncTask.execute(AsyncTask.java:391)
06-24 14:49:58.750: E/WindowManager(1798):  at com.thejs.app.Myactivity.onCreate(Unknown Source)
06-24 14:49:58.750: E/WindowManager(1798):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
06-24 14:49:58.750: E/WindowManager(1798):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
06-24 14:49:58.750: E/WindowManager(1798):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
06-24 14:49:58.750: E/WindowManager(1798):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
06-24 14:49:58.750: E/WindowManager(1798):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
06-24 14:49:58.750: E/WindowManager(1798):  at android.os.Handler.dispatchMessage(Handler.java:99)
06-24 14:49:58.750: E/WindowManager(1798):  at android.os.Looper.loop(Looper.java:130)
06-24 14:49:58.750: E/WindowManager(1798):  at android.app.ActivityThread.main(ActivityThread.java:3683)
06-24 14:49:58.750: E/WindowManager(1798):  at java.lang.reflect.Method.invokeNative(Native Method)
06-24 14:49:58.750: E/WindowManager(1798):  at java.lang.reflect.Method.invoke(Method.java:507)
06-24 14:49:58.750: E/WindowManager(1798):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:880)
06-24 14:49:58.750: E/WindowManager(1798):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:638)
06-24 14:49:58.750: E/WindowManager(1798):  at dalvik.system.NativeStart.main(Native Method)
06-24 14:50:06.070: E/dalvikvm(1798): Class lookup Ljava/lang/NoSuchMethodError; attempted while exception Ljava/lang/NoSuchMethodError; pending
06-24 14:50:06.080: E/dalvikvm(1798): VM aborting
06-24 14:50:06.360: E/dalvikvm(491): Killing existing arm process with pid 1798

0 个答案:

没有答案