こんなエラーが出て、ビルドが通らなくなりました。
----------------------------------原因を調べてみたところ、
Installation failed with the following output:
pkg: /data/local/tmp/Package.apk
Failure [INSTALL_FAILED_MISSING_FEATURE]
UnityEngine.Debug:LogError(Object)
PostProcessAndroidPlayer:UploadAndStartPlayer(String, String, String, String, String, Boolean, Boolean, Boolean)
(at C:/BuildAgent/work/b0bcff80449a48aa/Editor/Mono/BuildPipeline/PostProcessAndroidPlayer.cs:870)
PostProcessAndroidPlayer:PostProcess(BuildTarget, String, String, String, String, String, String, BuildOptions)
(at C:/BuildAgent/work/b0bcff80449a48aa/Editor/Mono/BuildPipeline/PostProcessAndroidPlayer.cs:452)
UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()
----------------------------------
[Unityプロジェクト]/Temp/StagingArea/AndroidManifest.xml
にある
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.front" android:required="true" />
のようでした。
これは、WebCamTextureを使おうとするとUnityがビルドするときに自動的に付与されるものなのですが、
プラグイン側のAndroidManifest.xmlには記載していませんでした。
言うのが遅くなりましたが、プラグイン側でもカメラ機能を使っています。
そのため、カメラ側では↓のパーミッション宣言が記述されています。
<uses-permission android:name="android.permission.CAMERA" />
プラグイン側のマニフェストファイルにも、uses-featureタグが必要なようです。
ということで、プラグイン側のマニフェストファイルで記載する内容を整理すると、
この3行が必要ということになります。
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.front" android:required="true" />
Unityが自動で生成するものと、プラグインで用意するものとで、
マニフェストファイルの内容を一部揃える必要があるあるなんて知りませんでした。
気づいてよかった。
==================== 2011.5.16.追記 ====================
上記修正でもエラーが出る場合は、
android:required="false"
にするとうまくいくことがありました。