4D v17で、ビルドアプリが動かないトラブルが発生、はまり度4だったので報告。
デザインモードでビルドアプリケーションはエラーなく終了する。ビルドしたアプリを実行すると、「データベース/コンポーネント “4D ViewPro”はコンポーネント “4D SVG”を必要とします。」というエラーメッセージが表示されて画面には何も表示されない、という現象。
図 実行時エラー
このプロジェクトでは4D ViewProも4D SVGも使っていない。macでもwindowsでも同じ現象。
「アプリケーションビルド」コマンドの「プラグイン&コンポーネント」タブを見ると、このプロジェクトでは使っていないのになぜか、4D ViewProがチェックされていてビルドすることになっていた。4D SVGはノーチェック。それで動かない。
図 会計ジロウプロジェクトのアプリケーションビルドのダイアログ v17
使ってないので「4D ViewPro」のチェックを外したら、ビルドアプリは動くようになった。
4D v16で新規作成した別のプロジェクトではこの問題が起きていなかったことに気付いて、v16時代の会計ジロウプロジェクトの「プラグイン&コンポーネント」タブを見てみると、次のとおり。4D ViewProがない、4D SVGがノーチェック。このときはこれで問題ない。ビルドアプリは動いていた。
図 会計ジロウプロジェクトのアプリケーションビルドのダイアログ v16
では、v16で新規プロジェクトを作った場合は?次の図。4D SVGはチェックされてる。これはこれで問題ない。ビルドアプリは動くだろう。
図 デフォルトのプロジェクトのアプリケーションビルドのダイアログ v16
考察:
おそらく4Dv15で作成したプロジェクトを、v16に移行したとき「4D SVG」はノーチェックだったか、または自分でチェックを外した。そのプロジェクトをv17に移行して、移行前にノーチェックだった「4D SVG」はノーチェック、v17で追加された「4D ViewPro」のチェックがデフォルトでオン、という設定でビルド。できたビルドアプリが動かない。という現象が起こる。
新しく追加になったプラグイン&コンポーネントは、デフォルトでチェックされているようだ。新規プロジェクトならそれはあり。しかし移行されたプロジェクトでは、新しいコンポーネントを以前に使っているはずがないのだからデフォルトはノーチェックにすべきでは?
ちなみに、「4D ViewPro」がチェックされていても「4D SVG」もチェックしてビルドすれば、ビルドアプリを実行したときにエラーは発生しない。デフォルトで「4D ViewPro」をチェックするならその際に自動的に「4D SVG」もチェックされていて欲しい。