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の問題でした。
参考: