Cordovaアプリをデバッグするための実際のソリューションはありますか[終了]


130

Cordova 3.2を使用して作成し、Android 2.3デバイスにデプロイしたHTML5アプリをデバッグする方法を理解するために、過去2日間を費やしました。私が見たすべての記事/投稿は実際の解決策ではなくハックを提供します:(そしてほとんどの場合、それらのどれも私のケースでは機能しません;アプリ内のcssスタイルとAngularjsコードをデバッグします。

これまでにテストしました。

debug.phonegap.com

スクリプトをindex.htmlファイルに挿入してから、debug.phonegap.comで生成されたURLにアクセスしましたが、何も起こりません。空白ページのみ。

ウェインレ

私が見つけた記事のほとんどは、Jarファイルを含む古いGithubリポジトリを指していますが、見つかりません:(

エッジ検査

それは機能し、モバイル内のPCで閲覧しているWebページを表示します。結果は正確ではありません。

Chromeエミュレータ

エッジ検査と同じです。Android 2.3に同梱されている実際のWebキットv530を表示することはできません。

夢のソリューション

完璧な解決策は、デスクトップブラウザーをAndroid 2.3プラットフォームで見られるものと同じものに切り替えることができるGoogle Chrome(デスクトップ)の拡張です。エミュレーションなし、ハッキングなし、Webキットv 530を搭載したブラウザ自体。

残念ながらそのような解決策は存在しません:(または私は間違っていますか?

助言がありますか?


回答:


139

アンドロイド用:

Androidデバイス内で「USBリモートデバッガ」を有効にし、USBケーブルで接続するだけです。次に、デバイスでアプリケーションを開きます。Chromeはリモートブラウザを検出し、ローカルでChromeを使用しているときと同じようにコンソールを表示できます。

このリンクを使用してください:chrome://inspect/#devicesChromeブラウザー(ナビゲーションバーに貼り付ける必要があります)。

アプリがデバイスでクラッシュした場合は、ブラウザーでコンソールのログを確認して、何が起きるかを確認するだけです。ローカルブラウザーで行うのと同じ方法で、機能を追加したり、変数を変更したり、関数をオーバーライドしたりすることもできます。

実行する手順の詳細については、この記事をお読みください。

これは、Android 4.4以降を実行するデバイスでのみ機能します。

iOSの場合:

iOSでSafariを使用するには、次の手順に従います。

1. iOSデバイスで、[設定]> [Safari]> [詳細設定]> [Webインスペクター]に移動して、Webインスペクターを有効にします。

2. iOSデバイスでSafariを開きます。

3. USB経由でコンピューターに接続します。

4.コンピュータでSafariを開きます。

5. Safariのメニューで、[開発]に移動し、デバイスの名前を探します。

6.デバッグするタブを選択します。

ここに画像の説明を入力してください


3
スマートフォンがUSB経由で接続されているときに、コンピューターとコンソールにChromeでアプリが表示されます。非常にクールなソリューション。
emilie zawadzki

私が走るまでそれは私の電話を見つけませんでしたadb start-server
Leukipp 2016年

@Leukipp私も同じ問題に直面していますが、その後、Windowsシステムの起動時にADTを追加します。私の問題は解決します
。– Neotrixs

2
回答は間違った問題の解決策を提示します-問題はブラウザーのデバッグに関するものではなく、WebViewのデバッグに関するものです。アプリケーションが表示されているWebViewがに表示されないために混乱している多数のイライラしたユーザーから明らかなように、これらは少し異なりますchrome://inspect
16

1
Android 4.4以降:(それが理由です...
16

76

通知

この回答は古く(2014年1月)、それ以来、多くの新しいデバッグソリューションが利用可能です。


やっと動いた!weinreとcordova(Phonegapビルドなし)を使用して、同じ問題に直面する可能性のある将来の開発者の手間を省くために、YouTubeチュートリアルを作成しました ;)


IPの適切な構成がありませんでしたが、今では問題なく動作します。
ファンカルロスアルピサルチンチラ

8
Weinreはデバッガーではなく、DOM検査のみを許可し、jsをデバッグすることも、コンソールメッセージを監視することもできません
Bogdan Mart

19
... YouTubeビデオへのリンクはどのように受け入れられますか?
Meekohi 2016年

2
@Meekohi彼はビデオを作った:)
キャンドルジャック

10
すべてのスタックオーバーフローの回答と同様に-(作成者が作成したかどうかにかかわらず)ソリューションへのリンクは不快です。ソリューションはここに保管してください。1日中になくなる可能性のある外部には保管しないでください。
DarkNeuron 2016年

56

Android 4.4以降のデバイスを使用できる場合は、アプリの内部WebViewでもChromeリモートデバッグを使用できます。それはWeinreよりはるかに優れたデバッガですが、重要なのは最新のAndroidバージョンを使用することです。

最近のCordovaビルドは、デバッグビルドである限り、この種のデバッグを自動的に有効にします(--releaseビルドでは無効になっています)。


見栄えが良い-また、この機能を有効にするために利用可能な電話ギャップビルドプラグインがあることに気づいた。
DavidC 2014

1
あなたのコメントによると:
release

9
再 これ、このリンクは役に立ちました。必要に応じて、Chromeを使用して[ chrome://inspectUSBデバイスの検出]が選択されていることを確認します。これにより、接続されたデバイスのデバッグ可能なWebViewが表示されます。
Sharadh 2015年

このソリューションの問題は、console.log機能していないようです。あなたalertsは本当に負担になることを経験する必要があります。
ジョアンピメンテルフェレイラ

(it's turned off in --release builds).この通知は私の日を救った!
マスウェルドナ

32

私にとって最良の方法は、Chromeデバッガを接続することです。

これを行うには、エミュレーターまたはデバイスでアプリを実行します($ cordovaエミュレートを使用)。

次に、Google Chromeを開いて、 chrome://inspect/

実行中のアプリのリストが表示されます。アプリはそこにあるはずです。「検査」をクリックします。

新しいウィンドウが開き、開発者ツールが表示されます。そこで、「コンソール」をクリックしてエラーをチェックできます


7
回答がOPの条件で機能することを再確認してください。ChromeデバッガはAndroid 4.4以降でのみ動作します。
Chris Neve、

20

アプリでCordova 3.3以降を実行していて、デバイスでAndroid 4.4以降を実行している場合は、ChromeリモートWebviewデバッグを使用してCordovaアプリをデバッグできます。

これを行うには、最初に電話でUSBデバッグを有効にする必要があります。

次に、「デバイスの検査」タブを開きます。Chromeで、に行く設定 > その他のツール > 点検デバイス

コンピューターに接続されているデバイスでアプリを起動すると、デバイスリストにWebviewが表示されます。Webviewの[Inspect]リンクをクリックすると、Webviewのデバッグツールが表示されます。

これを行う方法を完全に説明する記事は次のとおりです。http//geeklearning.io/apache-cordova-and-remote-debugging-on-android/


これは、4.4以降のためにOPに役立たないにもかかわらず、このコメントセクションの最良かつ最も完全な回答の1つです。
Chris Neve、

7

「GapDebug」を試しましたか?それは無料です。

Safari Webkit InspectorとChrome Dev Toolsのバージョンを統合して、OS XとWindowsで統合されたデバッグ体験を提供するようです。


1
これは、ステップデバッグiPhoneに接続したいWindowsユーザーにとって特に重要なツールです。
マイクネルソン、2015

7

別のオプションはVisual Studioです。これには、Cordovaアプリのデバッグ用のプレリリースサポートがあります

統合されたデバッグ体験。クロスプラットフォーム開発では、多くの場合、各デバイス、エミュレーター、またはシミュレーターをデバッグするために異なるツールが必要です。ツールが異なると、デバイスを切り替えるたびにワークフローが異なり、生産性が失われます。Visual Studioを使用すると、Windows、Androidエミュレーター、接続されたAndroidデバイス、iOSデバイスとエミュレーター、Apache Rippleエミュレーターなど、すべてのデプロイメントターゲットに同じ世界クラスのデバッグツールを使用できます。

MicrosoftがVisual Studio Communityエディションを無料でリリースしたので、これを無料で試すことができます。Visual StudioとVisual Studio Tools for Apache Cordovaの両方をダウンロードする必要があります。


Intelのかつての素晴らしいXDKはデバッガーのサポートを停止したため、新しいオプションを探す必要がありました。Visual Studioは、私が見つけた唯一のオールインワンソリューション(IDE、デバッガー、プラグインマネージャーなど)です。セットアップには少し時間がかかりますが、それは非常に簡単です。私はEnterprise 2015を使用しています。ビルドはしますが、まだ公開されているかどうかはわかりません(その時点では到達していません)。
Victor Stoddard 2017

5

私の知る限り、2.2から4.3までのAndroidプラットフォームのCordovaアプリで実際にデバッグするための生産的なツールはjshybuggerだけです。Weinreはインスペクターであり、デバッガーではありません。JsHybuggerは、Android WebView内でデバッグできるようにコードを計測します。


5

Genymotionを使用してAndroidアプリをデバッグできることを追加したいだけです。標準のAndroidエミュレータよりも高速です。


1
Genymotionはエミュレータではなく実際のデバイスとして扱われるため、Chromeリモートデバッグを使用できます。カメラやその他のハードウェア機能も機能しますが、一部は有料です。
shirk3y 2014

4

インテルXDK IDEを使用して、エミュレーターまたは実際のデバイスで開発およびデバッグできます

CordovaのVisual Studio 2015 RCツールもリップルエミュレーターで非常に優れている


3

phonegapビルドを使用する場合、デバッグを有効にするオプションがあります。


ローカルビルドの場合、npmを使用してweinreをインストールできます:https ://npmjs.org/package/weinre

そしてweinre docsへのリンク:http ://people.apache.org/~pmuellr/weinre/docs/latest/


そして、クロムリモートデバッグと呼ばれるものがありますが、私はそれについてあまり知りません。レイモンドカムデンの記事をご覧ください。 Cordova-33-and-Remote-Debugging-for-Android

クロムリモートデバッグ用のドキュメント:https : //developers.google.com/chrome-developer-tools/docs/remote-debugging (正しく理解できれば、デフォルトのブラウザとしてクロムを搭載したAndroidデバイスが必要です)夢に最も近いかもしれません解決?


情報をありがとう; 私は無料のコルドバの方法を使用することを好みます;)そして、私はそれを今動作させました(私の答えをチェックしてください)ありがとう!+1
numediaweb 2014年

1
私の編集を確認してください、クロムはあなたの夢の解決策からそれほど遠くないようです
QuickFix

私が使用しているデバイスはAndroid 2.3を実行していますが、ChromeリモートデバッグにはAndroid 4.4以降が必要です。しかし、「QuickFix」に感謝します。私はすべての作業が
完了しました


2

Cordova 3.3以降を使用してい、デバイスがAndroid 4.4以降を実行している場合は、「Chrome搭載のAndroidでリモートデバッグ」を使用できます。完全な手順はここにあります:

https://developer.chrome.com/devtools/docs/remote-debugging

要約すれば:

  • USBケーブルを使用してデバイスをデスクトップコンピューターに接続します
  • デバイスでUSBデバッグを有効にする(私のデバイスでは、これは[設定]> [その他]> [開発者向けオプション]> [USBデバッグ]にあります)

または、Cordova 3.3以降を使用していて、4.4を搭載した物理デバイスがない場合は、Android 4.4以降を使用するエミュレータを使用して、デスクトップコンピュータ上のエミュレータからアプリケーションを実行できます。

  • デバイスまたはエミュレーターでCordovaアプリケーションを実行する
  • デスクトップコンピューターのChromeで、アドレスバーにchrome:// inspect /#devicesと入力します
  • デバイス/エミュレーターは、コンピューターに接続されている他の認識されているデバイスと共に表示され、デバイスの下には、デバイス/エミュレーターで実行されているCordova 'WebView'(基本的にはCordovaアプリ)の詳細があります( Cordovaが機能する方法は、基本的にデバイス/エミュレーターに「ブラウザー」ウィンドウを作成することです。その中に、実行中のHTML / JavaScriptアプリである「WebView」があります)
  • リストされているデバイス/エミュレータが表示されている「WebView」セクションの下の「inspect」リンクをクリックします。これにより、アプリケーションのデバッグを可能にするChrome開発者ツールが表示されます。
  • Chromeデベロッパーツールの[ソース]タブを選択して、デバイス/エミュレーターのCordovaアプリが現在実行しているJavaScriptを表示します。JavaScriptにブレークポイントを追加して、コードをデバッグすることができます。
  • また、「コンソール」タブを使用してエラー(赤で表示されます)を表示したり、コンソールの下部に「>」プロンプトを表示したりできます。ここで、現在の値を検査する変数またはオブジェクト(DOMオブジェクトなど)を入力できます。値が表示されます。

2

これがPhonegap Buildを使用したソリューションです。以下をconfig.xmlに追加して、ChromeリモートWebviewデバッグで検査できるようにします。

まず、ウィジェットタグにxmlns:android = "http://schemas.android.com/apk/res/android"が含まれていることを確認します

<widget 
    xmlns="http://www.w3.org/ns/widgets" 
    xmlns:gap="http://phonegap.com/ns/1.0" 
    xmlns:android="http://schemas.android.com/apk/res/android"
    id="me.app.id" 
    version="1.0.0">

次に、以下を追加します

<gap:config-file platform="android" parent="/manifest">
     <application android:debuggable="true" />
</gap:config-file>

Nexus 5、Phonegap 3.7.0で動作します。

<preference name="phonegap-version" value="3.7.0" />

Phonegap Buildでアプリをビルドし、APKをインストールして、電話をUSBに接続し、電話でUSBデバッグを有効にしてから、chrome:// inspectにアクセスします。

ソース:https : //www.genuitec.com/products/gapdebug/learning-center/configuration/


ホーリーベジーザス!!! 私は最終的に私のAPKをデバッグすることができます!!! どうもありがとう、なぜこれが他のどこよりも目立たないのかわかりません。これらのメモをプロジェクトのreadmeに逐語的に含めます。
Josh

2

Androidデバイスモニターを使用する

Android Device Monitorには、以前にインストールしたはずのand​​roid sdkのパッケージが付属しています。デバイスモニターでは、デバイスログ全体、例外、メッセージすべてを確認できます。これは、アプリケーションのクラッシュやその他の問題をデバッグするのに役立ちます。これを実行するには、Android SDK「/ var / android-sdk-linux / tools」内のtools /フォルダーに移動します。次に、以下を実行します

chmod +x monitor
./monitor

Windowsを使用している場合は、monitor.exeファイルを直接開きます。「LogCat」の下にタブがあり、ここにすべてのデバイス関連メッセージが表示されます。クローム検査デバイスに表示されないAndroidデバイスの例外を含むすべてのメッセージがここに表示されます。アプリケーションのメッセージのみが表示されるように、logcatタブの「+」記号を使用してフィルターを作成してください。

出典:http : //excellencenodejsblog.com/phonegap-debugging-your-android-application/


Linuxユーザーの場合、SDKのインストール方法によっては、〜/ Android / Sdk / tools / monitorにあるか、単にを入力してみてくださいmonitor
Strixy

2

html5アプリをChromeでデバッグすることもできます

デバッグモードでChromeを開くための.batを作成します

cd C:\Program Files (x86)\Google\Chrome\Application
chrome.exe "file:///C:\Users\***.html" --allow-file-access-from-files --disable-web-security

1
おかげで、私は最良のアプローチがweinreを使用して、デバイス自体の統合されたWebkitブラウザーで設計をデバッグすることだとわかりました!
numediaweb 2014年

1
第二に、リップルはリリースしたときの外観の平均的なアイデアを提供しますが、これは良いことですが、エミュレータと実際のデバイスを比較すると、主にエミュレータがWebブラウザのエンジンで動作するため、違いがある場合がありますデバイスで動作するため、状況によっては同じではありません。したがって、私は通常、リップルを使用してUIを設計し、何かが期待どおりに動作しない場合の動作をテストします
Juan Carlos Alpizar Chinchilla 14年

2

「Chromeリモートデバッグ」を使用して、携帯電話にインストールされているCordova Androidアプリケーションを USBケーブル経由でコンピューターからリモートデバッグできます(コンピューターからWebアプリケーションを表示しているかのように、リモートでWebアプリケーションをクリックすることもできます)。この方法で、ストックAndroidブラウザーまたはAndroid上のChromeで表示されるWebアプリケーションをデバッグすることもできます

  1. Androidデバイスで開発者モードを有効にします(設定->電話について->ビルド番号の7倍をタップ)。

  2. コンピューターを携帯電話とUSBケーブルで接続します。

  3. パソコンでChromeを起動してchrome:// inspectに移動し、デバッグするリモートデバイスの横にある[検査]ボタンをクリックします([デバイス]タブの下)。または、コンピューターのChrome内で右クリック->検査-> DevToolsをコスト管理して制御します(縦に3つドット-開発ツールの右上隅)->その他のツール->リモートデバイス->左側の[デバイス]で、 USB経由で接続されているデバイス->目的のアプリケーションの[検査]ボタンをクリックします。

  4. 次に、[コンソール]をクリックすると、Chrome開発ツールを使用した通常のウェブアプリケーションと同じようにJavaScriptをデバッグできます。


これは私の電話(android 6)では機能しますが、私のタブレット(note 8 android 4.4)では機能しません
Danielo515

これは、Android Webビューの問題でした。
crosswalk

1

私はweinreが大好きです!どうやって使うのですか:

まず、あなたの身に着けてくださいindex.htmlapp.settings.debugUrlこれが前に設定されていることを確認してください):

  <!-- Weinre debugging -->
  <script type="text/javascript">
    if (app.settings.debugUrl) {
      document.addEventListener("DOMContentLoaded", function(event) { 
        var s = document.createElement("script")
        s.setAttribute("src", app.settings.debugUrl+"/target/target-script-min.js#anonymous")
        document.getElementsByTagName("body")[0].appendChild(s)
      }); 
    }   
  </script>

次に:

http://www.broken-links.com/2013/06/28/remote-debugging-with-weinre/に基づく


Weinreはデバッガではありません、それは、あなたがjsの、さらには、時計のコンソールメッセージをデバッグすることができない、唯一のDOM検査を可能にする
ボグダンマート

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.