Electron関連

最終更新日:2021-12-07 10:29:45

    Demoの実行時にNULLポインタの未定義のエラー「cannot read property "dlopen" of undefined」がスローされてしまいます。


    Electron 12バージョンではコンテキスト分離がデフォルトでオンになっています。contextIsolationをfalseに設定できます。

    let win = new BrowserWindow({
      width: 1366,
      height: 1024,
      minWidth: 800,
      minHeight: 600,
      webPreferences: {
        nodeIntegration: true,
        contextIsolation: false
      },
    });
    

    vscode terminalでElectron Demoを起動すると、入室後にディスプレイが白くなります。

    vscodeにカメラの権限が必要です。次の方法で権限を追加することができます。

    cd ~/Library/Application\ Support/com.apple.TCC/
    cp TCC.db TCC.db.bak
    sqlite3 TCC.db    # sqlite> prompt appears.
    # for Mojave, Catalina
    INSERT into access VALUES('kTCCServiceCamera',"com.microsoft.VSCode",0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1541440109);
    # for BigSur
    INSERT into access VALUES('kTCCServiceCamera',"com.microsoft.VSCode",0,1,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1541440109);
    

    Windowsシステム32の実行がエラーとなり、32ビットのtrtc_electron_sdk.nodeが必要と表示されました。

    1. プロジェクトディレクトリ下のtrtc-electron-sdkのライブラリディレクトリ(xxx/node_modules/trtc-electron-sdk)に入り、次を実行します。

      npm run install -- arch=ia32
      
    2. 32ビットのtrtc_electron_sdk.nodeのダウンロードを完了後、項目を再度パッケージ化します。

    trtc-electron-sdkは公式のElectron v12.0.1バージョンと互換性がありますか。

    互換性があります。trtc-electron-sdkは特にelecron自体のsdkに依存しないので、それに関するバージョンの依存関係はありません。

    Electronで再入室の問題が何度も発生します。

    具体的なcaseを分析する必要がありますが、おおよその原因は次のとおりです。

    • クライアントのネットワーク状態不良(ネットワークが切断されると再入室がトリガーされます)。
    • 連続して2回入室シグナルを送信した場合も、再入室となる場合があります。
    • デバイスの負荷が高すぎたことで、デコードに失敗し再入室となる場合があります。
    • 同一のUIDでの複数端末ログインが互いにキックアウトされ、再入室となる場合があります。

    .nodeモジュールのロードに問題があります。

    パッケージ化してコンパイルしたプログラムを実行する際、コンソールにこのようなエラーメッセージがみられます。

    • NodeRTCCloud is not a constructor
    • Cannot open xxx/trtc_electron_sdk.node
    • dlopen(xxx/trtc_electron_sdk.node, 1): image not found

      上のようなメッセージが表示された場合は、trtc_electron_sdk.nodeモジュールがプログラムに正しくパッケージ化されていないことを意味します。