###前提・実現したいこと
UnityでAdsによる広告を表示する勉強中でして、ボタンを押したら動画を配信するようにするデータを作成しました。
しかしAndroid用にビルドを試みているのですがどうしても成功しません。
アセットストアよりUnity Adsをインポートしまして、該当のコードを記載しまして、それをUIのボタンで押したら「ShowUnityAds」を実行するように設定しているだけの状態です。
もし何かわかる方がいらっしゃいましたら、申し訳ありませんがお力を貸していただけませんでしょうか?
###発生している問題・エラーメッセージ
ビルドを行おうとすると、
Unable to convert classes into dex format.
See the Console for details.
と出て失敗してしまいます。
CommandInvokationFailure: Unable to convert classes into dex format. C:/Program Files/Java/jdk1.8.0_131\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="C:/Users/User/AppData/Local/Android/sdk\tools" -Dfile.encoding=UTF8 -jar "E:\Program Files\Unity5.3.4f1\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -
###該当のソースコード
using UnityEngine; using System.Collections; using UnityEngine.Advertisements; using UnityEngine.Events; public class UnityAdsController : MonoBehaviour { [SerializeField] string zoneID = "rewardedVideo"; [SerializeField] string gameID_iOS = "1473272"; [SerializeField] string gameID_Android = "1473271"; [Header("OnFinished Callback")] public UnityEvent OnFinishedAds; [Header("OnSkipped Callback")] public UnityEvent OnSkippedAds; [Header("OnFailed Callback")] public UnityEvent OnFailedAds; void Start() { if (Advertisement.isSupported && !Advertisement.isInitialized) { #if UNITY_ANDROID Advertisement.Initialize(gameID_Android); #elif UNITY_IOS Advertisement.Initialize(gameID_iOS); #endif } } public void ShowUnityAds() { #if UNITY_ANDROID || UNITY_IOS if (Advertisement.IsReady(zoneID)) { var options = new ShowOptions { resultCallback = HandleShowResult }; Advertisement.Show(zoneID, options); } #endif } private void HandleShowResult(ShowResult result) { switch (result) { case ShowResult.Finished: Debug.Log("The ad was successfully shown."); OnFinished(); break; case ShowResult.Skipped: Debug.Log("The ad was skipped before reaching the end."); OnSkipped(); break; case ShowResult.Failed: Debug.LogError("The ad failed to be shown."); OnFailed(); break; } } void OnFinished() { // ここに動画視聴完了時の処理 OnFinishedAds.Invoke(); } void OnSkipped() { // ここに動画をスキップしたときの処理 OnSkippedAds.Invoke(); } void OnFailed() { // ここに動画視聴失敗時の処理 OnFailedAds.Invoke(); } }
###試したこと
新規でプロジェクトを作成して空っぽの状態でビルドを試みましたがその時は成功しました、実機での動作も問題ありませんでした。
インターネットでは「Bundle Identifier」の記載を変更する必要があるとの事でしたので色々と変更してみましたが結果は変わりませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
Unity 5.5.2
アセットストアにてUnity Adsをインポートしました。
あなたの回答
tips
プレビュー