2020年08月12日

[Unity] AndroidManifest.xml is missing. の対処法

UnityのAndroid用ビルドをしようとして、AdMobのエラーが出たときの対処法をメモで残しておく。

Unity用のAdMobSDKのパッケージ  ※Ver. 5.3.0 = 2020年8月12日現在
https://developers.google.com/admob/unity/start?hl=ja

エラーメッセージ:
-------------------------------------
BuildMethodException: [GoogleMobileAds] AndroidManifest.xml is missing. Try re-importing the plugin.
ManifestProcessor.StopBuildWithMessage (System.String message) (at Assets/GoogleMobileAds/Editor/ManifestProcessor.cs:175)
ManifestProcessor.OnPreprocessBuild (UnityEditor.Build.Reporting.BuildReport report) (at Assets/GoogleMobileAds/Editor/ManifestProcessor.cs:52)
UnityEditor.Build.BuildPipelineInterfaces+<>c__DisplayClass15_0.b__1 (UnityEditor.Build.IPreprocessBuildWithReport bpp) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs:411)
UnityEditor.Build.BuildPipelineInterfaces.InvokeCallbackInterfacesPair[T1,T2] (System.Collections.Generic.List`1[T] oneInterfaces, System.Action`1[T] invocationOne, System.Collections.Generic.List`1[T] twoInterfaces, System.Action`1[T] invocationTwo, System.Boolean exitOnFailure) (at /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs:391)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at /Users/builduser/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:197)
-------------------------------------

「AndroidManifest.xml 」が見つからないということで、パスが誤っているらしい。

Assets > GoogleMobileAds > ManifestProcessor.cs
を開き、40行目あたりにある赤い部分を削除する。

-------------------------------------
string manifestPath = Path.Combine(Application.dataPath, "Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml");

string manifestPath = Path.Combine(Application.dataPath, "Plugins/Android/GoogleMobileAdsPlugin/AndroidManifest.xml");
-------------------------------------

これでビルドが通った。
公式のプラグインに誤りがあるなんて!

参考:
https://stackoverflow.com/questions/57920250/androidmanifest-xml-is-missing-try-reimporting-the-plugin
posted by be-style at 14:57| Comment(0) | Unity

2020年03月28日

[Unity] Unity2019.3.6でLWRPからURPに移行しようとして苦労した話

Unity2019.3からLWRP(軽量レンダーパイプライン)からURP(ユニバーサルレンダーパイプライン)に変更されるということで、プロジェクトを更新しようとした話の続き。

先の記事では、とりあえずPackage Manager関連のエラーを解消することができた。

先の記事:
http://blog.be-style.jpn.com/article/187319324.html

シーンを実行したところ、LWRPで作っていたShaderMaterialが紫一色に!
どこかでリンクが切れているときに起こる現象なので調べてみたところ、それっぽい記事を発見。

Unity2019.2までのLWRPプロジェクトをUnity2019.3以降のURPにアップグレードする方法:
https://raspberly.hateblo.jp/entry/UniversalRPUpgrade

LWRP -> Universal RP Upgrade Guide:
https://docs.google.com/document/d/1Xd5bZa8pYZRHri-EnNkyhwrWEzSa15vtnpcg--xUCIs/edit

読んでみたものの、正直、すべてを理解できませんでした(おぃ
Unityのメニューを色々見ていたら「Upgrade Project Materials to UniversalRP Materials」というそれっぽいメニューを発見。

スクリーンショット 2020-03-28 15.35.26.png

これはいけるのでは!

スクリーンショット 2020-03-28 15.35.46.png

「Proceed」を押して実行してみたところ、問題は解消されませんでした!

初心に戻って、問題のシェーダーのInspectorを見直してみることに。

スクリーンショット 2020-03-28 15.59.41.png

どうも初期化されてないっぽいということで、Shader Editorを開き、「Save Asset」を実行してみました。

スクリーンショット 2020-03-28 16.00.11.png

Inspectorの表示を見ると初期化されたっぽい!

スクリーンショット 2020-03-28 16.00.25.png

これでシーンをもう一度実行してみたところ、ちゃんとシェーダーが動きました。
よかったー。
posted by be-style at 16:37| Comment(0) | Unity

[Unity] Unity2019.3.6 にバージョンアップしたら Unable to add package [com.unity.render-pipelines.universal@7.3.1]

Unity2019.3からLWRP(軽量レンダーパイプライン)からURP(ユニバーサルレンダーパイプライン)に変更されるということで、プロジェクトを更新せねば!で始まった移行作業。

Unityからの告知:
https://blogs.unity3d.com/jp/2019/09/20/how-the-lightweight-render-pipeline-is-evolving/

LWRP -> URP への移行手順:
https://docs.google.com/document/d/1Xd5bZa8pYZRHri-EnNkyhwrWEzSa15vtnpcg--xUCIs/edit

まだ移行は完了していないけど、1つのエラーを解消できたのでメモ。

Unity2019.3.6 にバージョンアップしてプロジェクトを更新したところ、
Unity起動後にエラーが出るようになってしまった。

---------------------------------------------------------
Cannot perform upm operation: Unable to add package [com.unity.render-pipelines.universal@7.3.1]:
One or more dependencies could not be added to the local file system:
com.unity.render-pipelines.core: connect ETIMEDOUT 23.194.79.92:443 [NotFound]
UnityEditor.EditorApplication:Internal_CallUpdateFunctions() (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:310)
---------------------------------------------------------

Package Managerを開いて使っていたパッケージを更新しても解消せず。

スクリーンショット 2020-03-28 15.04.03.png

よく見ると、Universal RPのバージョンが「7.1.8」のままで、エラーに書いてある「7.3.1」ではないことに気づく。
Package Manager > Universal RP の左側にある矢印をクリックして開くことができて、
そこで「7.3.1」にアップデートすることができた。

スクリーンショット 2020-03-28 15.04.20.png

見逃してたー。
posted by be-style at 15:18| Comment(0) | Unity

2020年03月27日

[iOS] iOS13でTerminating app due to uncaught exception 'NSInternalInconsistencyException'で落ちる

Xcode 11.3.1でビルドして、iOS13.3のiPhoneでアプリ起動時にエラーで落ちる事象が出ました。

↓エラ〜メッセージ
------------------------------------
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '<TableViewController: 0x1419b1a00> returned nil from -traitCollection, which is not allowed.'
*** First throw call stack:
(0x18cb9896c 0x18c8b1028 0x18ca954fc 0x18cf284e4 0x1909060b0 0x191107c60 0x1911079cc 0x190e44980 0x190e7d9f8 0x1000a04c0 0x19063d550 0x190642184 0x190642570 0x10012e0bc 0x1016db27c 0x1016dcc88 0x10012cd58 0x1911397e0 0x18c8aca4c 0x19374fa9c 0x19374feec 0x193762614 0x1936a71c4 0x1936d1fd0 0x1936d2ba4 0x18cb13524 0x18cb0e1c4 0x18cb0e774 0x18cb0df40 0x196d8b534 0x190c86a60 0x100115c8c 0x18c98ce18)
------------------------------------

ネットで情報を探しても見当たらなくて困っていたら、ある一文を発見。

self.tableViewController = [TableViewController alloc];
↓ 修正
self.tableViewController = [TableViewController new];

本来は alloc と init をセットで書くべきところを、allocだけで動いていたので油断していました。
allocとinitが一緒になったような「new」に変えたところエラーが解消しました。

こんな事があるんだなー。
posted by be-style at 13:34| Comment(0) | iOS

2020年03月17日

[iOS] 100マス計算をアップデートしました

100マス計算をアップデートしました。
ミニゲームを2つ追加しました。

・アナログ時計:アナログ時計の読み方を練習できます。
・クレペリン :就活で用いられているクレペリン検査の簡易版で練習できます。

IMG_3141.jpg

よろしければ、遊んでみてくださいー。

App Store:
https://apps.apple.com/jp/app/id534131439
posted by be-style at 21:49| Comment(0) | Release