質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

3908閲覧

【gree/unity-webview】UnityでAndroidのみwebサイトが表示されない。

ishizaku

総合スコア4

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/09/09 10:18

編集2021/09/09 10:23

環境

  • Unity:2019.4.0f1
  • 環境OS:Windows10
  • ビルドターゲット:Android

概要

gree/unity-webviewを使い、Assets/StreamingAssets内に入れた、仮称「A.html」はAndroid実機で表示していたのですが、
Unityのアップデートや、Firebaseのアップデート等を行っていくうちに、気づいたら表示されない状態(真っ白なページ)になってしまいました…。
色々調べ修正してみたのですがどれも上手くいきませんでしたので、解決法が分かる方がいらっしゃいましたらご教授お願い致します。

判明していること

  • MacでのエディタテストではiOS版、Android版表示されていることを確認しました。
  • MacでのiOS実機テストでは正常に動作しております。
  • MacでのAndroid実機はできず、WinでのAndroid実機テストでは表示されません。
  • Firebaseのアップデート関係、Unityのアップデート関係をいじった後表示されなくなった気がする。

判明していることから、プラグイン問題だと予想

  • MacでのエディタではiOS版、Android版共に表示されていることを確認しました。
  • MacでのiOS実機テストでは正常に動作しております。
  • Firebaseのアップデート関係、Unityのアップデート関係をいじった後表示されなくなった気がする。

上記のことからAndroid実機にビルドした場合にWebViewが表示されないのではないかと予想し、今回は

  • UnityのSetting周り
  • Assets/Plugins/Android/AndroidManifest.xml
  • Temp/StagingArea/UnityManifest.xml
  • Android実機ビルドの.apk内にあるAndroidManifest.xmlで気になる部分

を記載したいと思います。

Other Setting

イメージ説明

Publishing Setting

イメージ説明

Assets/Plugins/Android/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.[project_name]" android:versionCode="1" android:versionName="1.0"> <application android:label="@string/app_name" android:icon="@drawable/app_icon"> <!-- The MessagingUnityPlayerActivity is a class that extends UnityPlayerActivity to work around a known issue when receiving notification data payloads in the background. --> <activity android:name="com.google.firebase.MessagingUnityPlayerActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:hardwareAccelerated="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> </activity> <service android:name="com.google.firebase.messaging.MessageForwardingService" android:exported="false" /> </application> </manifest>

Temp/StagingArea/UnityManifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.unity3d.player" android:versionCode="1" android:versionName="1.0"> <application android:label="@string/app_name" android:isGame="true" android:icon="@mipmap/app_icon"> <!-- The MessagingUnityPlayerActivity is a class that extends UnityPlayerActivity to work around a known issue when receiving notification data payloads in the background. --> <activity android:name="com.google.firebase.MessagingUnityPlayerActivity" android:screenOrientation="portrait" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density" android:hardwareAccelerated="false"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> </activity> <service android:name="com.google.firebase.messaging.MessageForwardingService" android:exported="false" /> <meta-data android:name="unity.splash-mode" android:value="0" /> <meta-data android:name="unity.splash-enable" android:value="True" /> <meta-data android:name="unity.build-id" android:value="b116406e-3f27-40be-9fc5-138139e33d60" /> </application> <uses-feature android:glEsVersion="0x00020000" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" /> <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" /> </manifest>

Android実機ビルドの.apk内にあるAndroidManifest.xmlで気になる部分

<application android:label="@ref/0x7f090000" android:icon="@ref/0x7f080000" android:banner="@ref/0x7f040000" android:isGame="true" android:appComponentFactory="androidx.core.app.CoreComponentFactory"> <activity android:name="com.google.firebase.MessagingUnityPlayerActivity" android:launchMode="2" android:screenOrientation="1" android:configChanges="0x40003fff" android:hardwareAccelerated="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> </activity>

個人的には「MainActivityがMessagingUnityPlayerActivityだからなのかな?」とも思っております。
com.unity3d.player.UnityPlayerActivityやnet.gree.unitywebview.CUnityPlayerActivity?(こちらがよく分っていない)は.xmlには記載がありませんでした。
他に欲しい情報や、WebViewを表示するソースなどもお聞きいただければ追加で公開したいと思います。

以上、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

Sampleを使い検証した結果、以下の原因があったことが分かりました。

  • Publishing SettingのminifyがNoneではなかった
  • Assets/Plugins/Android/AndroidManifest.xmlのMainActivityをcom.unity3d.player.UnityPlayerActivityに変更する。

これで正常にWebViewが表示されました。
MainActivityを変更したことでFirebaseMessagingが機能しない可能性がありますが、それはまた別の問題になりますので、とりあえず解決です。

投稿2021/09/10 03:22

ishizaku

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問