タイトルがよくわからないのは、私自身よくわからず混乱しているからです。すみません。
AndroidStudioでUnityのプラグインを(Android libraryというモジュールを追加して)作成中です。その中で、Unityのclasses.jarファイルをlibsというフォルダに入れなければならないそうなのでそうしました。ファイル名はいじっていません。
その後、作成したaarファイルをUnityに持っていき、ビルドしてみると
IOException: Failed to Copy File / Directory from 'Temp/StagingArea\android-libraries\plugin_name-debug\classes.jar' to 'Temp/StagingArea\android-libraries\plugin_name-debug\libs\classes.jar': destination path already exists. UnityEditor.FileUtil.MoveFileOrDirectory (System.String source, System.String dest) (at C:/buildslave/unity/build/Editor/Mono/FileUtil.bindings.cs:70) UnityEditor.Android.PostProcessor.Tasks.ProcessAAR.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTargetGroup targetGroup, BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:287) UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()
というエラーが発生します。調べてみるとこのページに
android.libraryVariants.all { variant -> variant.outputs.each { output -> output.packageLibrary.exclude('libs/classes.jar') } }
とAndroid Studio側のbuild.gradleで書けとありました。しかし書いても何の変化も見られません(というかこれを書くのはappのbuild.gradle?追加したライブラリのbuild.gradle?)。
また、このページを参考に
dependencies { // ... provided fileTree(dir: "${project.rootDir}/path_to_libs_dir", include: '*.jar') }
これを
dependencies { // ... provided fileTree(dir: "libs", include: '*.jar') }
として使用したところ、
Configuration 'provided' is obsolete and has been replaced with 'compileOnly'. It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
などとAndroidStudioでエラーが出たので、
dependencies { // ... compileOnly fileTree(dir: "libs", include: '*.jar') }
とすると、AndroidStudio側ではうまくaarファイルを作成できたのですが、これをUnityで使用しビルドすると
Plugin Bundle ID conflict detected: package com.hoge.piyo_plugin has conflicts with other plugins (Hoge vs hoge). Make sure you use the same case for your package names. UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()
というエラーがでます。
まとめると、
classes.jarファイルがUnityでのビルド時にAndroidStudioで作ったaarファイルにコピーされるが、すでに入っていたため(?)エラーとなる。→最初に出ていたIOExceptionなんたらというエラー。
それを回避するためbuild.gradleにaarファイルにjarファイルを含めないようにしたけど効果なし。→なぜ?
別の手段として、compileOnlyなんたらをやってみると、またよくわからんエラー。
Android Studio初心者で、UnityもAndroidアプリのために使ったことはありません。お助けください。よろしくお願いします。
環境:
Android Studio Version 3.2
Unity 2018.2.11f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。