🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Unity

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

Q&A

解決済

1回答

5070閲覧

Unityでビルド時、UnityEditor.BuildPlayerWindow+BuildMethodExceptionというエラーが発生します。

GEPlanet

総合スコア0

Java

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

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Unity

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

1グッド

0クリップ

投稿2020/11/24 07:45

編集2020/11/24 07:55

前提・実現したいこと

自作のAndroidプラグインをUnityで使っていたのですが、GooglePlayGamesPluginを導入したところビルドできなくなりました。
自作のプラグインを削除してGooglePlayGamesPluginのみにした場合はビルドが通ります。反対に自作ビルドのみにした場合ではビルドが通らなくなりました。

発生している問題・エラーメッセージ

CommandInvokationFailure: Gradle build failed. C:/Program Files/Unity/Hub/Editor/2019.4.15f1/Editor/Data/PlaybackEngines/AndroidPlayer\OpenJDK\bin\java.exe -classpath "C:\Program Files\Unity\Hub\Editor\2019.4.15f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-5.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease" stderr[ 注意:C:\Users\jwin\Documents\Alarm\Temp\gradleOut\unityLibrary\src\main\java\com\unity3d\player\UnityPlayerActivity.javaは非推奨のAPIを使用またはオーバーライドしています。 注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。 D8: Program type already present: com.unity3d.player.UnityPlayer$18 FAILURE: Build failed with an exception.

ソースコード

ライブラリの依存関係 (alarmplugin-debugが自作プラグインです。)

releaseRuntimeClasspath - Resolved configuration for runtime for variant: release +--- :alarmplugin-debug +--- :androidx.arch.core.core-runtime-2.0.0 +--- :androidx.asynclayoutinflater.asynclayoutinflater-1.0.0 +--- :androidx.coordinatorlayout.coordinatorlayout-1.0.0 +--- :androidx.core.core-1.0.0 +--- :androidx.cursoradapter.cursoradapter-1.0.0 +--- :androidx.customview.customview-1.0.0 +--- :androidx.documentfile.documentfile-1.0.0 +--- :androidx.drawerlayout.drawerlayout-1.0.0 +--- :androidx.fragment.fragment-1.0.0 +--- :androidx.interpolator.interpolator-1.0.0 +--- :androidx.legacy.legacy-support-core-ui-1.0.0 +--- :androidx.legacy.legacy-support-core-utils-1.0.0 +--- :androidx.lifecycle.lifecycle-livedata-2.0.0 +--- :androidx.lifecycle.lifecycle-livedata-core-2.0.0 +--- :androidx.lifecycle.lifecycle-runtime-2.0.0 +--- :androidx.lifecycle.lifecycle-viewmodel-2.0.0 +--- :androidx.loader.loader-1.0.0 +--- :androidx.localbroadcastmanager.localbroadcastmanager-1.0.0 +--- :androidx.print.print-1.0.0 +--- :androidx.slidingpanelayout.slidingpanelayout-1.0.0 +--- :androidx.swiperefreshlayout.swiperefreshlayout-1.0.0 +--- :androidx.versionedparcelable.versionedparcelable-1.0.0 +--- :androidx.viewpager.viewpager-1.0.0 +--- :com.google.android.gms.play-services-auth-18.1.0 +--- :com.google.android.gms.play-services-auth-api-phone-17.0.0 +--- :com.google.android.gms.play-services-auth-base-17.0.0 +--- :com.google.android.gms.play-services-base-17.1.0 +--- :com.google.android.gms.play-services-basement-17.1.1 +--- :com.google.android.gms.play-services-drive-17.0.0 +--- :com.google.android.gms.play-services-games-20.0.1 +--- :com.google.android.gms.play-services-nearby-17.0.0 +--- :com.google.android.gms.play-services-tasks-17.0.0 +--- :com.google.games.gpgs-plugin-support-0.10.11 +--- :UnityAds +--- :UnityAdsAndroidPlugin +--- project :unityLibrary:GooglePlayGamesManifest.plugin \--- project :unityLibrary:unity-android-resources

試したこと

  • ARM64に対応するためにプラグイン側のbuild.gradleにndk.abiFilters を追加しました。
  • 自作プラグインとGoogle Play Service のインポート順序を逆にしてみました。
  • UnityのCustom Main Gradle Template を使用してみました。

補足情報

Unity 2019.4.15f1

Android Studio 4.0.1
SDK Platfrom 16 -- 29
NDK 21.3.6528147

GooglePlayGamesPlugin-0.10.11
external-dependency-manager-1.2.156

いろいろ試したのですがどれも成功しません。
どうかご教授お願いい致します。

yonn👍を押しています

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました。

自作したプラグインのbuild.gradleを

修正前

dependencies { implementation files('classes.jarのフルパス') compileOnly fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.core:core:1.3.2' implementation 'androidx.appcompat:appcompat:1.2.0' }

修正後

dependencies { compileOnly fileTree(dir: 'libs', include: ['*.jar'], exclude: ['classes.jar']) compileOnly files('libs/classes.jar') compileOnly 'androidx.core:core:1.3.2' compileOnly 'androidx.appcompat:appcompat:1.2.0' }

このように記述してaarを作りUnityへ取り込むことでビルドできました。

その後java.lang.ClassNotFoundExceptionによってプラグインが動かなかったので、

https://www.hirohomme.com/2019/05/25/unity-%E3%81%AB-admob-%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%9F%E6%99%82%E3%80%81proguard-%E3%82%84-minify-%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%9B%E3%81%9A%E3%81%AB-release%E3%83%93%E3%83%AB%E3%83%89/

この記事を参考にしてproguard-user.txtを作成して無事動作させることが出来ました。

投稿2020/11/24 13:45

GEPlanet

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問