質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

1693閲覧

AndroidStudioでUnityのclasses.jarをどうすればいいのか?

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

1クリップ

投稿2018/10/12 12:41

編集2018/10/12 12:42

タイトルがよくわからないのは、私自身よくわからず混乱しているからです。すみません。

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

いまいち腑に落ちませんが、ここを参考にして、

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()

に書いてあるplayerSettingのcompany nameのhogeをhoge以外に変えるとうまくいきました。AndroidStudioで作ったものもcom.hoge.hogehugaだったので、com.の次が同じだと競合するみたいです。

投稿2018/10/13 03:51

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問