2013-02-26 11 views
7

Phonegap(Cordova)2.0から2.4へのビルドをアップグレードしました。実際に最終リリースapkをテストするまで、すべてがdevで正常に動作していました。時間が無駄になってしまったのは何故か、私がプログアードの設定をビルドしたときに何らかの理由でビルドを実行すると、devicereadyが呼び出されることはないということです。ビルドや実行時に何もエラーがないように見えますが、私が見る限りではありませんが、私はデバイス上でコンパイル/ログエラーが発生していないので、コードバjsで黙って失敗していると思います。Phonegap 2.4 Android Proguardの設定

これは、ビルドプロセスで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は、任意の光を投げていないようだ - すべてが一目でOKになります...

誰でもアイデアはありますか?

+0

質問:なぜあなたはCordovaWebView DroidGapを使用していませんか? –

+1

これは@エドワードを調べる道になるかもしれません...私のアプリはDriodGapを拡張しています。私はproguardとphonegapに関する問題について他の投稿を掘り下げています。アプリは正常に起動し、正しいURLをロードしますが、jsをロードするときに問題があるようです。 –

答えて

11

パブリックおよびプライベート(したがって、再び有効deviceready)の両方の、すべてのコルドバのクラス、フィールド、およびメソッドを維持すべきである次の行、とあなたProGuardの-project.txtの設定を「維持」コルドバを交換してみてください:

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

あなたのクラス(プラグインだけでなく、おそらくCordovaPluginを拡張する)を含める必要があります。

前-V3:

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

のV3 +:(?)関係のないランダム

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

あなたはチャンピオンです!今まで私には起こりませんでした。 – AppleGrew

0

PhoneGapプラグインが最終的なAPKから除外されています。 Cordova.jsはエラーを出すためにおそらく存在しません。

+0

jsは手動で含まれており、サーバー上でホストされています...私は、JSコードを実行して、失敗している場所を正確に突き止めようとしています。難読化が実行され、JSが黙って失敗すると、おそらくプラグインが見つからない/名前が変更された可能性があります。私はWeinreも実行していますが、解析/実行時のエラーを報告しません。 –

関連する問題