環境
- 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を表示するソースなどもお聞きいただければ追加で公開したいと思います。
以上、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。