Android RIAアプリが動作しない
サーバにモバイルRIAの環境を作成し、リッチクライアントビルダにてapkファイルを作成しました。
Android端末にインストールして起動すると「cannot access the server」と表示され起動できません。
GooglePlayストアから、Magic xpa 3.3をインストールして、apkと一緒に作成された.txtを設定した場合は、問題なく起動します。
サーバ:WindowsServer2019 xpa3.3 RIA Server
JDK:8.0.2810.9 (Dドライブにインストールし、JAVA_HOMEを設定しました)
SDK:Android 9.0(28) 、Android 10.0(29)、 Android 11.0(30)をインストール
(ビルドはandroid-28で行っています)
クライアント:Android 9、Android 10
よろしくお願いします。
-
サーバへのパスが間違っているのではないでしょうか?
.txt内に記述されているパスは合っていますか?
あるいは、その.txtへのパスは合っていますか?
-
回答ありがとうございます。
.txtのサーバのパスは正しく設定されていました。
リッチクライアントビルダでも、「公開Webサーバの設定」と「アプリケーション用Webサーバの設定」の
サーバ名に同じIPアドレスを設定しています。
-
リッチクライアントビルダのウィザードを実行されたとき、「外部の設定ファイルを参照」欄のチェックはどうされましたか?
「外部の設定ファイルを参照」にチェックを入れた場合は、外部の.txtファイルが生成され、実行時にそれが参照されるようになります。
ここにチェックを入れなかった場合は、execution.propertiesの中にアクセス先のサーバ情報が埋め込まれます。
-
「外部の設定ファイルを参照」にチェックを入れています。
ビルダのウィザード終了後、apkファイルと同じフォルダにtxtファイルが作成されますが、それが参照されるということでしょうか。
その.txtのサーバのパスは正しく設定されていますが、この.txtへのパスはどうやって確認すればよいですか?
-
Chrome等のブラウザを起動して、アドレス欄にその.txtファイルへのパスを入れてみてください。.txtファイルの中身がブラウザに表示されればOKです。
-
URLは必ず、FQDN(http://等で始まる書式)で確認する必要があります。
-
スマホのブラウザから.txtファイルの中身が確認できました。
-
そうすると、次に確認すべきはbuild.gradleの内容ですね。ちょっと今、出先から書いていますので、後で確認しますが、build.gradleの設定はビルド時の設定と一致していますか?
-
build.gradleではなくて、settings.propertiesだったかもしれません。事務所に戻ったら、あとで資料を確認してみます。
-
> (ビルドはandroid-28で行っています)
たしか、どこかのドキュメントにMagic側のデフォルトに合わせたほうがよいというような記述があったと記憶しています。私は常に、セミナーも連載も、Magicのドキュメント通りの設定で確認しています。
-
失礼、ひょっとしたら、Magic xpa 4.6では、デフォルトがandroid-28になっていたかもしれません。確認してみてください。
-
おっと、ここはxpa 3.xの部屋でしたね。そしたら、android-28よりもっと前のバージョンだったはずです。
-
資料を確認してみましたら、フェーズを合わせるのは、build.gradleとsettings.propertiesの両方ですね。
ただ、ちょっとxpa 3.3 RIA Sererの環境がすぐに確認できません。3.2ならすぐに確認できるのですが。
Suiさんのところの、xpa 3.3のbuild.gradleとsettings.propertiesはどうなっていますか?
※build.gradleは複数個所にファイルがありますので注意してください。
-
確認するのは、Magicxpa\RIA Server 3.3\RIAModules\Android\Source にある、build.gradleとsettings.propertiesでしょうか。
それぞれのファイルの、どこをどのように確認するのか教えていただけますか?
-
ちょっと違います。
Magicxpa\RIA Server 3.3\RIAModules\Android\Source
にあるsettings.properties とMagicxpa\RIA Server 3.3\RIAModules\Android\Source\app
にあるbuild.gradleです。※パスが違いますので要注意です。
それらに記述されているAndroid SDKのバージョン番号と、リッチクライアントビルダで指定するバージョン番号が一致しているかどうかです。
-
Androidのビルドは、一般的に、
OS:Microsoft
言語:Oracle
開発環境:Googleですから、フェーズを合わせるのに結構、苦労します。
その点、iOSのビルドは、常に、
OS:Apple
言語:Apple
開発環境:Appleですから、環境構築が非常に簡単です。
-
それぞれ以下のようになっていました。
【settings.properties】
sdk.dir=C:\\Program Files\\Android\\android-sdk
target=android-28【build.gradle】
compileSdkVersion 28
buildToolsVersion "28.0.3"android-28でビルドしているため、正しく設定されていると思うのですが……
-
Android-28で統一されているのでしたら、問題なさそうですね。
差し支えなければ、.txtへの実際のパス(URL)と.txtの内容を問題のない範囲で教えてもらえますか?
-
iOSのビルドも考えていたのですが、MacOSが手元になかったため保留になっています。
現在iOSクライアントは、GooglePlayストアのMagicアプリから.txtを設定する方法で使用しています。
-
テキストのURLは、http://[サーバIP]/Magic33RIAApplicationsRIA/MyApp/Android/AAA.txtです。
同じ場所にAAA.apkもあります。
Magic33RIAApplicationsRIA は、MagicRIAインストール時に設定した仮想ディレクトリです。
テキストの内容は以下の通りです。
<properties>
<property key="protocol" val="http"/>
<property key="server" val="[サーバIP]"/>
<property key="requester" val="/Magic33ScriptsRIA/MGrqispi.dll"/>
<property key="appname" val="AAA"/>
<property key="prgname" val="LOGIN"/>
<property key="LogClientSequenceForActivityMonitor" val="N"/>
<property key="InternalLogLevel" val=""/>
<property key="InternalLogFile" val=""/>
<property key="InternalLogSync" val="Message"/>
<property key="DisplayStatisticInformation" val="N"/>
<property key="FirstHTTPRequestTimeout" val="2"/>
</properties> -
<property key="requester" val="/Magic33ScriptsRIA/MGrqispi.dll"/>
上の行にある、
「/Magic33ScriptsRIA」の先頭の「/」を削除して、やり直してみてください。
-
「/Magic33ScriptsRIA」の先頭の「/」を削除して、apkのダウンロードからやり直しましたが、「cannot access the server」が表示されました。
-
おそらく、どこかのキャッシュがこの「/」を覚えているのだと思います。
IISのキャッシュ、ブラウザのキャッシュ等を疑ってかかる必要がありそうですね。とくに、IISの強固なキャッシュにはいつも悩まされます。
-
Android側でアプリが保持しているキャッシュの可能性もあります。
-
ISHIJIMAさん、それは上でSuiさんが書かれている通りですよ。エイリアスをご自分で切られています。
-
> Android側でアプリが保持しているキャッシュの可能性もあります。
アプリのキャッシュというより、アプリの領域がOS管理下で保持しているキャッシュです。これにも、いつも悩まされます。
セミナーを主催していると、皆さんの環境であらゆるトラブルが発生しますので、かえって勉強になります。
-
>インストール時にMagic33ScriptsRIAにしたという事でしょうか?
そうです。
インストール時に、Magic33ScriptsRIAとMagic33RIAApplicationsRIAを設定しました。
-
Androidのキャッシュは、アプリの完全削除をやったのち、OSの電源再起動をすればたいてい大丈夫だったと思います。
-
ちなみに、リッチクライアントビルダを使用せずに、Magicに同梱されているbuild.cmdを使ってビルドするという方法もありますので、ひと段落したらこちらも試されることをお勧めします。
最近、私はもっぱらこちらを使用しています。環境設定がすべて自分の目で確認できますから安心です。
iOSの場合も、ウィザードを使わずに、Magic同梱のiOSプロジェクトをそのままXcodeでビルドしています。
-
>「/Magic33ScriptsRIA」の先頭の「/」を削除して、やり直してみてください。
Suiさん、ちょっと訂正です。私の環境で「/」を付けて試してみましたところ、同じように正常に動作しました。つまり、これが原因ではないということですね。失礼しました。
サインインしてコメントを残してください。
コメント
38件のコメント