facebook twitter hatena line email

「Unity/バージョンアップメモ」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
行4: 行4:
  
 
[[Unity/バージョンアップメモ/unity2017.2]]
 
[[Unity/バージョンアップメモ/unity2017.2]]
==unity2020.1.2f1へ==
 
unity2019.2.12f1からunity2020.1.2f1へ
 
 
===Component GUI Layerエラーが出るとき===
 
<pre>
 
Component GUI Layer in Main Camera for Scene unity is no longer available.
 
It will be removed after you edit this GameObject and save the Scene.
 
</pre>
 
MainCameraのFlareLayerをremoveするとよい。
 
 
参考:https://baba-s.hatenablog.com/entry/2020/05/07/070100
 
 
===androidのとき===
 
====android.useAndroidXが設定されてないエラー====
 
以下のようなメッセージが出た場合
 
<pre>
 
* What went wrong:
 
Could not determine the dependencies of task ':launcher:lintVitalRelease'.
 
> This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled. Set this property to true in the gradle.properties file and retry.
 
The following AndroidX dependencies are detected: androidx.versionedparcelable:versionedparcelable:1.0.0, androidx.fragment:fragment:1.0.0, androidx.slidingpanelayout:slidingpanelayout:1.0.0, androidx.core:core:1.0.0, androidx.customview:customview:1.0.0, androidx.swiperefreshlayout:swiperefreshlayout:1.0.0, androidx.interpolator:interpolator:1.0.0, androidx.loader:loader:1.0.0, androidx.drawerlayout:drawerlayout:1.0.0, androidx.viewpager:viewpager:1.0.0, androidx.collection:collection:1.0.0, androidx.localbroadcastmanager:localbroadcastmanager:1.0.0, androidx.lifecycle:lifecycle-common:2.0.0, androidx.arch.core:core-common:2.0.0, androidx.annotation:annotation:1.1.0, androidx.legacy:legacy-support-core-ui:1.0.0, androidx.lifecycle:lifecycle-livedata:2.0.0, androidx.lifecycle:lifecycle-viewmodel:2.0.0, androidx.lifecycle:lifecycle-livedata-core:2.0.0, androidx.browser:browser:1.0.0, androidx.arch.core:core-runtime:2.0.0, androidx.legacy:legacy-support-core-utils:1.0.0, androidx.documentfile:documentfile:1.0.0, androidx.cursoradapter:cursoradapter:1.0.0, androidx.lifecycle:lifecycle-runtime:2.0.0, androidx.coordinatorlayout:coordinatorlayout:1.0.0, androidx.asynclayoutinflater:asynclayoutinflater:1.0.0, androidx.print:print:1.0.0
 
 
* Try:
 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
 
</pre>
 
AndroidのPublisingSettingのCustomGradlePropertiesTemplateにチェックを付け、生成されたgradleTemplate.propertiesに以下を追加
 
 
Assets/Plugins/Android/gradleTemplate.properties
 
<pre>
 
android.enableJetifier=true
 
android.useAndroidX=true
 
</pre>
 
 
====firebase-xxxx-unity.jarがない====
 
以下のようなエラーが出るとき
 
<pre>
 
> Could not find firebase-analytics-unity.jar (com.google.firebase:firebase-analytics-unity:6.10.0).
 
> Could not find firebase-app-unity.jar (com.google.firebase:firebase-app-unity:6.10.0).
 
> Could not find firebase-auth-unity.jar (com.google.firebase:firebase-auth-unity:6.10.0).
 
> Could not find firebase-config-unity.jar (com.google.firebase:firebase-config-unity:6.10.0).
 
> Could not find firebase-crashlytics-unity.jar (com.google.firebase:firebase-crashlytics-unity:6.10.0).
 
> Could not find firebase-functions-unity.jar (com.google.firebase:firebase-functions-unity:6.10.0).
 
</pre>
 
firebaseを再度downloadして(firebase_unity_sdk_6.15.2.zip)各種unitypackageをインストールする。
 
 
====GoogleMobileAds周りのエラーのとき====
 
Assets/GoogleMobileAdsを最新のGoogleMobileAds5.3.0 (https://github.com/googleads/googleads-mobile-unity/releases/tag/v5.3.0) をインポート
 
<pre>
 
java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException:
 
</pre>
 
Assets/Plugin/Android/GoogleMobileAdsPluginを削除して、最新のGoogleMobileAds5.3.0 をimport
 
<pre>
 
BuildMethodException: [GoogleMobileAds] AndroidManifest.xml is missing. Try re-importing the plugin.
 
ManifestProcessor.StopBuildWithMessage (System.String message) (at
 
</pre>
 
====multidexのエラーが出るとき====
 
以下エラーが出るとき
 
<pre>
 
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
 
</pre>
 
 
以下ファイルにmultiDexEnabledを追加する
 
 
Assets/Plugins/Android/mainTemplate.gradle
 
<pre>
 
android {
 
    defaultConfig {
 
        multiDexEnabled true
 
    }
 
    dependencies {
 
      implementation 'androidx.multidex:multidex:2.0.1'
 
    }
 
}
 
</pre>
 
androidxでなくandroid.supportを使ってる場合はこちら、
 
implementation 'com.android.support:multidex:1.0.3'
 
 
参考:[[Unity/GoogleMobileSDK/ライブラリ自動読み込み]] [ショートカット]
 
 
====複数のBuildConfigが登録されてるエラーが出るとき====
 
以下のようなエラーが出るとき
 
<pre>
 
com.android.build.gradle.internal.tasks.Workers$ActionFacade
 
Type com.google.unity.BuildConfig is defined multiple times:
 
/Users/mac1/.gradle/caches/transforms-2/files-2.1/c9cf383e15a96332348d065caa0c331b/jetified-googlemobileads-unity-runtime/classes.dex,
 
Temp/gradleOut/launcher/build/intermediates/external_file_lib_dex_archives/release/out/0_jetified-unity-plugin-library.jar:classes.dex
 
</pre>
 
*バージョンアップでcom.google.unity.BuildConfigの競合が起こってるので、アプリ下のTempを一旦削除すれば良い。
 
*Assets/Plugins/x86_64/Firebaseもfirebase-6.15.2では不要っぽいので削除。
 
 
====compileSdkVersionがないとき====
 
以下メッセージが出るとき、compileSdkVersionがAssets/Plugins/Android/mainTemplate.gradleに含まれてないので確認する。
 
<pre>
 
A problem occurred configuring project ':unityLibrary'.
 
> compileSdkVersion is not specified. Please add it to build.gradle
 
</pre>
 
 
====bundle()メソッドが見つからないと出るとき====
 
以下メッセージが出るとき
 
<pre>
 
A problem occurred evaluating project ':unityLibrary'.
 
> Could not find method bundle() for arguments
 
</pre>
 
 
Assets/Plugins/Android/mainTemplate.gradleに以下のようにbundleがある場合は、コメントアウトしておく。
 
<pre>
 
/*
 
bundle {
 
        language {
 
            enableSplit = false
 
        }
 
        density {
 
            enableSplit = false
 
        }
 
        abi {
 
            enableSplit = true
 
        }
 
    }
 
*/
 
</pre>
 
参考:https://stackoverflow.com/questions/54234394/how-to-resolve-could-not-find-method-bundle-for-arguments-build-6plat21h
 
 
====ライブラリプロジェクトはapplicationIdを設定できませんと出るとき====
 
以下メッセージが出るとき
 
<pre>
 
Library projects cannot set applicationId. applicationId is set to  in default config.
 
</pre>
 
Assets/Plugins/Android/mainTemplate.gradleにapplicationIdが含まれてるときは、削除する
 
 
====google-services.json がないと出るとき====
 
以下メッセージが出るとき
 
<pre>
 
Failed to read Firebase options from the app's resources. Either make sure google-services.json is included in your build or specify options explicitly.
 
</pre>
 
 
Assets/Plugins/Android/mainTemplate.gradle に以下sourceSetsを追加
 
<pre>
 
android {
 
    sourceSets {
 
        main {
 
            res.srcDirs += '/[path_project]/Assets/Plugins/Android/Firebase/res/values/google-services.xml'
 
        }
 
    }
 
}
 
</pre>
 
====Crashlytics build IDがミスしてると出るとき====
 
<pre>
 
E FirebaseCrashlytics: The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.
 
</pre>
 
Packages/manifest.jsonから一旦crashlyticsを消す。
 
 
====Failed to update Android SDK package list. See the Console for details.エラーが出るとき====
 
[[Unity/開発環境/Android]] [ショートカット]] sdkmanagerから対象APIのsdkをインストール
 
 
====com.unity.purchasing.googleplay.GooglePlayPurchasingが見つからず課金処理が停止する====
 
[[Unity/課金/インストール]] [ショートカット] こちらを確認
 
 
===iosのとき===
 
===using manual reference counting エラー1===
 
以下エラーが出るとき(UnityEarlyTransactionObserver.mmで起こった)
 
Cannot synthesize weak property in file using manual reference counting
 
BuildSettingからWeak References in Manual Retain ReleaseをNoからYesへ
 
 
===using manual reference countingエラー2===
 
以下エラーが出るとき(Libraries/Plugins/iOS/GADUNativeCustomTemplateAd.mm で起こった)
 
Cannot create __weak reference in file using manual reference counting
 
BuildSettingからWeak References in Manual Retain ReleaseをNoからYesへ(Levelsを選択してすべてをYesへ)
 
 
 
==unity2019.3.0f6へ==
 
==unity2019.3.0f6へ==
 
unity2019.2.0f1からunity2019.3.0f6へ
 
unity2019.2.0f1からunity2019.3.0f6へ

2020年8月26日 (水) 03:17時点における版

Unity/バージョンアップメモ/unity2020.1.2f1

Unity/バージョンアップメモ/unity2019.3.0f6

Unity/バージョンアップメモ/unity2017.2

unity2019.3.0f6へ

unity2019.2.0f1からunity2019.3.0f6へ

Assets/Plugins/Pixelplacement/iTween/iTween.cs(6083,4): error CS0619: 'GUITexture.color' is obsolete: 'GUITexture has been removed. Use UI.Image instead.'

  • GUITextureが使えなくなったのでiTweenを最新へすることで直った。
  • photonでもdemoでGUI系を使ってたのでdemoを削除することで直った。

参考:https://www.ikaken.com/archives/1747

unity2017.2でGUI Textは非推奨へ

以下メッセージが出たときの直し方

Component GUI Layer in Main Camera for Scene Assets/MainScene.unity is no longer available.

It will be removed after you edit this GameObject and save the Scene. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

  1. Assets/MainScene.unityを開く
  2. Main Cameraのinspectorを開いて、適当にプロパティを有効/無効と適当に変更する
  3. Assets/MainScene.unityを保存する
  4. Assets/MainScene.unityをクリックして、上記ログが出なければ良い。

参考:https://tech.pjin.jp/blog/2018/01/31/unity_gui-text_deprecated/