簡體   English   中英

Phonegap 2.4 Android Proguard 配置

[英]Phonegap 2.4 Android Proguard config

我已經將一個構建版本從 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“保持”設置,該行應維護所有公共和私有的 Cordova 類、字段和方法(從而重新啟用設備就緒):

-保持類org.apache.cordova.** { *; }

然后你只需要包含你的類(大概是擴展 CordovaPlugin,而不僅僅是插件)例如

v3 之前:

-keep public class * extends org.apache.cordova.api.CordovaPlugin

v3+:

-keep public class * extends org.apache.cordova.CordovaPlugin

我猜Phonegap插件被排除在最終的APK之外。 Cordova.js 甚至可能不存在以提供錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM