本章もしくは節で説明する機能は、nexacro beyond 17.1.2.100バージョンで追加された機能です。
NREリモートデバッグ
NRE実行時に、Chrome、EdgeのDevices inspect機能を使用すると、実行中のアプリのデバッグが可能です。Windows、macOS、Android OSをサポートします。
開発したスクリプトとJavaScriptライブラリまでデバッグできます。 DeviceAdaptorsでインストールしたモジュールやエンジン内部のコードデバッグはサポートしません。
プロジェクト設定
Environmentのenableinspectorプロパティ値をtrueに変更します。
Android > MainActivity.java
Android studioでMainActivity.javaコード作成時にsetRPP関数を追加します。
if(bootstrapURL != null) { setBootstrapURL(bootstrapURL); setProjectURL(projectUrl); setRPP("9223"); }
ローカルホストとして動作するため、IPアドレスは省略してポート番号のみを入力します。
ポート番号は変更できます。
実行設定
Windows
nexacro.exe実行オプションとして-RPPオプションを下記のように追加して実行します。
nexacro.exe -K "INSPECTOR_TEST" -S "http://localhost:8080/start.json" -RPP 127.0.0.1:9223 nexacro.exe -K "INSPECTOR_TEST" -S "http://localhost:8080/start.json" -RPP 9223
RPPオプション設定時にPORTのみ設定した場合にはlocalhostで動作します。
macOS
ターミナルで実行時に-RPPオプションを下記のように追加して実行します。
open nexaApp.app --args -K INSPECTOR_TEST -S http://localhost:8080/start_macos.json -RPP "127.0.0.1:9223" open nexaApp.app --args -K INSPECTOR_TEST -S http://localhost:8080/start_macos.json -RPP "9223"
RPPオプション設定時にPORTのみを設定した場合にはlocalhostで動作します。
Android
接続しようとするAndroidデバイスで、下記のような設定が必要です。
1
USBデバッグオプションの活性化
USBデバッグを有効にする方法は、各メーカーマニュアルをご参照ください。
https://developer.android.com/studio/debug/dev-options#enable
2
Android studioがインポートされたデスクトップにAndroidデバイスをUSBで接続します。
AndroidデバイスによってUSB接続に制限があることがあります。
https://developers.google.com/web/tools/chrome-devtools/remote-debugging#troubleshooting
3
Android studioのターミナルウィンドウに下記のように入力します。
adb start-server adb forward tcp:9223 tcp:9223
4
Android studioでプロジェクトを実行します。
接続されたAndroidデバイスでアプリが実行されたことを確認できます。
Android(無線接続)
接続するデバイスのようなデスクトップが同じネットワークを使用できれば、無線接続を設定できます。最初の接続設定時にはUSB接続が必要で、設定完了後はUSB接続なしでデバッグを行うことができます。
1
USBデバッグオプションの活性化
2
Android studioが設置されたデスクトップにAndroidデバイスをUSBで接続します。
3
Android studioのターミナルウィンドウに下記のように入力します。
adb kill-server adb start-server adb tcpip 5555 adb connect 192.168.0.58 adb devices
5555はAndroidデバイスとデスクトップの間の通信のためのポートです。
192.168.0.58はAndroidデバイスのIPです。IP確認後、値を入力してください。
4
無線に接続されると、下記のように接続されたAndroidデバイスのIPが表示されます。
List of devices attached 192.168.0.58:5555 device
5
USBを解除します。
6
Android studioのターミナルウィンドウに下記のように入力します。
adb forward tcp:9223 tcp:9223
7
Android studioでプロジェクトを実行すると、Androidデバイスでアプリが実行されます。
Devices inspect機能の実行
1
Chromeを実行し、アドレスバーに「chrome://inspect」を入力します。
chrome://inspect
2
Configureボタンをクリックし、Target discovery settingsウィンドウを立ち上げます。
Discover network targets項目がチェックされていない場合は、該当項目をチェックしてください。
3
Target discovery settingsウィンドウに予め設定したRPPアドレス値を追加します。
4
アプリを実行すると、Remote Target項目に実行されたアプリのキー値が表示されます。
5
Target項目の下にあるinspectリンクをクリックすると、コンソールウィンドウに移動し、traceメソッド実行結果やエラー発生時のメッセージを確認することができます。
6
open dedicated devtools for nodeリンクをクリックすると、サーバリソースが検索できるウインドウを表示することができます。
[Sourcs > Node]タブで希望するファイルを選択し、ブレークポイントを追加したり、追加のデバッグ作業が行えます。
Remote Target項目にアプリが表示されない場合
アプリ実行後20秒以上アプリが表示されない場合は、下記のように措置します。
1
ブラウザ終了後、再接続します。
2
アプリでinspect機能が正常に実行されているか確認します。
アプリ実行後、下記のURLにアクセスすると、情報を表示されます。応答がない場合、プロジェクト設定に問題があるか、他の問題がある可能性があります。
[Target discovery settings RPP Address]/json/list http://127.0.0.1:9223/json/list
ロード中停止機能オプションの設定
NREリモートデバッグは、実行中のアプリに接続してデバッグを実行するため、ロード中に発生するエラーや現象をデバッグできません。下記のように、追加オプションでロード時点に強制的に停止する設定を追加することができます。
ロード中停止機能は、テーマファイル(theme.map.js)の受信完了時点で止まった状態のままDevices inspectの接続を待ちます。プロジェクトロード方式やネットワーク状態によって、該当時点に一部のファイルをダウンロードしていない状態である可能性があり、ダウンロードされていないファイルはデバッグを処理できません。
Windows、macOS
nexacro.exe実行オプションとして-brk "true"オプションを下記のように追加して実行します。
nexacro.exe -K "INSPECTOR_TEST" -S "http://localhost:8080/start.json" -RPP 127.0.0.1:9223 -brk "true" nexacro.exe -K "INSPECTOR_TEST" -S "http://localhost:8080/start.json" -RPP 9223 -brk "true"
macOS
ターミナルで実行する際、-brk "true"オプションを下記のように追加して実行します。
open nexaApp.app --args -K INSPECTOR_TEST -S http://localhost:8080/start_macos.json -RPP "127.0.0.1:9223" -brk "true" open nexaApp.app --args -K INSPECTOR_TEST -S http://localhost:8080/start_macos.json -RPP "9223" -brk "true"
Android > MainActivity.java
Android studioでMainActivity.javaのコードを作成する際、setBRK関数を追加します。
if(bootstrapURL != null) { setBootstrapURL(bootstrapURL); setProjectURL(projectUrl); setRPP("9223"); setBRK("true") }