conf t

インフラエンジニアのメモ

UnityでAdmobを導入しようとした際にはまったエラー

UnityでAdmobを導入しようとした際にはまったエラーが以下。

CommandInvokationFailure: Failed to recompile android resource files. See the Console for details.
C:\Program Files\Java\jdk1.8.0_45\bin\javac.exe -bootclasspath "C:/Users/<ユーザ名>/AppData/Local/Android/android-sdk\platforms\android-23\android.jar" -d "E:\unity\ShootingGame\Temp\StagingArea\bin\classes" -source 1.6 -target 1.6 -encoding UTF-8 "com\fooihiea\test\R.java"

stderr[
�G���[: C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\jfxrt.jar�̓Ǎ��݃G���[�ł��Bzip file is empty
�G���[1��
]
stdout[

]

半日潰してして原因が判明。
32bitのUnityなのに、64bitのjavaSDKを使っていたのが原因らしい。

32bitのjavaSDKをインストール後、Edit⇒PrefarencesのExternal Toolsから、 JDK Locationを32bitのjava SDKを指定すればOK。

私のマシンは64bitマシンなんですが、64bitのUnityを一度インストールし直したら何故かうまく動かなかったため、
仕方なく32bitのUnityで開発していました。
そのため使っているUnityとjavaSDKのバージョンが一致しておりませんでした。

私と同様なケースはあまりないかもしれませんが、javaのバージョンは揃えておかなければだめということですね。(当たり前か)

OSでjavaのパスが通っていない?⇒通っていなかったから通したけどうまく動かず。
android toolsがC:\Program Filesではなくてユーザ領域にあるから? 直前にandroid sdk managerでGoogle Play Servicesをインストールした際に他のモジュールも更新して、バージョンの不整合でも生じた? 等色々疑いましたが結局javaの問題でした。

参考:

stackoverflow.com