我已经将构建从 Phonegap (Cordova) 2.0 升级到 2.4,并且在开发中一切正常,直到我真正开始测试最终发布的 apk。在浪费了大量时间之后,我发现由于某种原因,现在当我运行构建时,我的 proguard 配置正在以某种方式破坏phonegap 构建,这意味着当它运行时,永远不会调用 deviceready 。构建时似乎没有错误,运行时也没有错误,据我所知,没有任何错误,但我猜测 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.**
反编译 dex 似乎没有任何亮点 - 乍一看一切看起来都很好......
有人有主意吗???
尝试用以下行替换 proguard-project.txt 中的 Cordova“keep”设置,该行应维护所有 Cordova 类、字段和方法,包括公共和私有(从而重新启用 deviceready):
-keep 类 org.apache.cordova.** { *; }
然后你只需要包含你的类(大概是扩展 CordovaPlugin,而不仅仅是插件),例如
pre-v3:
-keep public class * extends org.apache.cordova.api.CordovaPlugin
v3+:
-keep public class * extends org.apache.cordova.CordovaPlugin
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)