Programming」カテゴリーアーカイブ

プログラミング全般に関するカテゴリーです。

Unable to locate Android SDKでapkがビルドできない場合

Unity HubでAndroid Buildに必要なモジュールをインストールしているのに

Android SDK not found
Unable to locate Android SDK.

のようなエラーメッセージが表示されてビルドできないという場合は、Android DevelopersからSDK toolsをダウンロードしてみると上手くいく場合があるようです。

手順

  1. Android Developersのサイトから使用したいプラットフォームのZipファイルをダウンロード。
  2. Unity Hubのインストール先の
    Unity/Hub/Unityのバージョン/Editor/Data/PlaybackEngines/AndroidPlayer/SDK/
    にダウンロードしたファイルをunzip。(toolsというディレクトリ名)

ちなみに、SDKディレクトリ内にtoolsディレクトリが存在してる場合はこの方法では解決しないと思いますので、気を付けてください。

リンク

Download Android Studio and SDK tools | Android Developers
https://developer.android.com/studio/

Android SDK not found – Unity Forum
https://forum.unity.com/threads/android-sdk-not-found.762506/

PythonのCGIでバイナリファイルを扱う場合の注意

PythonのCGIでバイナリファイルを扱う場合はprintで改行コードが追加されることに注意してください。

具体的には

print(open('/path/to/file', 'rb').read())

のようなスクリプト書いてファイルをダウンロードさせようとすると、元のファイルより1バイト分大きなファイルになってしまいます。

修正は例えば次のような感じです。

sys.stdout.write(open('/path/to/file', 'rb').read())

普段HTMLXMLなどを扱っている場合は改行コードで問題にならないので、バイナリファイルを扱う場合は気を付けてください。

リンク

cgi — Common Gateway Interface support — Python 3.8.1rc1 documentation
https://docs.python.org/3/library/cgi.html

'SceneCamera' is not valid

Unityで作業をしていたら次のようなエラーメッセージ

transform.position assign attempt for 'SceneCamera' is not valid. Input position is { NaN, NaN, NaN }.

が永遠と表示され、Unityを再起動してもエラーが出続けるという状況に遭遇した場合は、Sceneのタブを「右クリック » Close Tab」して、

Window » General » Scene

から開き直すと回復する場合があるようです。

Unityのバグなのか何か分かりませんが、Webで検索してみると結構古くからある現象みたいです。