Phonegap 2.4 Android Proguard配置

phi*_*use 7 android proguard cordova

我已经将一个版本从Phonegap(Cordova)2.0升级到2.4,一切都在dev中工作正常,直到我真正来测试最终版本apk.在经过大量浪费后,我发现的是,由于某种原因,现在当我运行构建时,我的proguard配置以某种方式打破了phonegap构建,这意味着当它运行时,从未调用过设备.在构建时似乎没有错误,也没有任何错误,只要我能看到,但我猜测有些东西在cordova js中默默地失败,因为我没有在设备上获得编译/日志错误.

正如我所说,这只是在构建过程中运行Proguard obfs时.如果我关闭Proguard它一切正常.我将我的所有代码恢复到2.0以确定并且这一切都很好所以在某个地方出现了一个看似没有记录/或者还没有人发现的变化(2.4仅在几周前出现 - 在写作时间2013年2月26日).

我的Proguard配置包含以下的phonegap(以及其他一些标准配置)

-keep public class * extends com.phonegap.api.Plugin
-keep public class * extends org.apache.cordova.api.Plugin
-keep public class org.apache.cordova.DroidGap
-keep public class org.apache.cordova.**
-keep public class org.apache.**
-dontwarn android.webkit.*
-dontwarn org.apache.**
Run Code Online (Sandbox Code Playgroud)

并且反编译dex似乎没有任何亮点 - 一切看起来都一目了然......

有人有主意吗???

Ste*_*the 11

尝试使用以下行替换proguard-project.txt中的Cordova"keep"设置,该行应该维护所有Cordova类,字段和方法,包括公共和私有(并因此重新启用设备准备):

-keep class org.apache.cordova.**{*; }

然后你只需要包括你的类(可能扩展CordovaPlugin,而不仅仅是插件),例如

v3之前:

-keep public class * extends org.apache.cordova.api.CordovaPlugin
Run Code Online (Sandbox Code Playgroud)

V3 +:

-keep public class * extends org.apache.cordova.CordovaPlugin
Run Code Online (Sandbox Code Playgroud)