27

Windows で create.bat を使用してアプリケーションを作成し、ADT と最新の SDK でコンパイルしました。

コルドバディスプレイを起動して表示しますが、「デバイスに接続しています」と言い続けるため、devicereadyイベントは発生しません。同じことがエミュレータにも当てはまります。ただし、エミュレータのOSを4.0に変更すると機能します。

4.2 がリリースされたばかりで、更新を待たなければならないので、これは正常ですか?

4

6 に答える 6

29

Android 4.2 を搭載した Nexus 7 で同じ問題が発生しましたが、AndroidManifest targetSdkVersion を「16」に変更すると機能します

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16" />   (Before it was ="17")

これが誰かのために働くことを願っています。

ディエゴ

于 2012-11-20T14:54:37.313 に答える
17

午前 1 時になり、ようやくアプリを再び実行できるようになりました。Android 4.2 には、明らかにセキュリティ関連の変更が webView.addJavascriptInterface に含まれており、デフォルトのブリッジ モードが機能しなくなります。

次のバージョンでより良い修正が行われることを期待していますが、迅速な修正が必要な場合は、CordovaWebView.exposeJsInterface へのこの更新を試してください。

private void exposeJsInterface() {
    int SDK_INT = Build.VERSION.SDK_INT;
    boolean isHoneycomb = (SDK_INT >= Build.VERSION_CODES.HONEYCOMB && SDK_INT <= Build.VERSION_CODES.HONEYCOMB_MR2);
    if (isHoneycomb || (SDK_INT < Build.VERSION_CODES.GINGERBREAD)) {
        Log.i(TAG, "Disabled addJavascriptInterface() bridge since Android version is old.");
        // Bug being that Java Strings do not get converted to JS strings automatically.
        // This isn't hard to work-around on the JS side, but it's easier to just
        // use the prompt bridge instead.
        return;            
    } else if (SDK_INT < Build.VERSION_CODES.HONEYCOMB && Build.MANUFACTURER.equals("unknown")) {
        // addJavascriptInterface crashes on the 2.3 emulator.
        Log.i(TAG, "Disabled addJavascriptInterface() bridge callback due to a bug on the 2.3 emulator");
        return;

    } else if (SDK_INT == Build.VERSION_CODES.JELLY_BEAN_MR1) {            
        Log.i(TAG, "Disabled addJavascriptInterface() bridge callback for 4.2");
        return;


    }
    this.addJavascriptInterface(exposedJsApi, "_cordovaNative");
}
于 2012-11-19T14:16:43.047 に答える
9

私の場合、自動生成されたindex.htmlはphonegap.jsを参照していました

だから代わりに

<script type="text/javascript" src="phonegap.js"></script>

置いた

<script type="text/javascript" src="cordova.js"></script>
于 2013-09-26T14:49:20.330 に答える
2

どうやらこれはPhonegap2.3.0で修正されています。

Android 4.2でもこの問題が発生しました。私のプロジェクトでは、Phonegap2.2を使用していました。

この簡単なアップグレード手順に従って更新されました-問題は解決しました。

したがって、2.3.0にアップグレードした後、設定android:targetSdkVersion="17"は再びOKになります。

于 2013-01-22T05:33:06.120 に答える
0

js ファイル (Index.js) のエラーを削除することで問題を解決しました。

JavaScript にエラーがないことを確認する必要があります。

于 2015-01-31T06:26:38.843 に答える
0

これのもう 1 つの原因は、cordova-2.3.0.jar が cordova-2.3.0.js ファイルのバージョンと一致しない可能性があることです。

于 2013-01-28T10:56:00.420 に答える