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

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

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

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

2回答

2384閲覧

Visual Studio for Mac で Android Project がビルドできません

toshi0607

総合スコア56

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2017/10/14 13:59

編集2017/10/16 06:29

概要

Visual Studio for Mac で Android Project がビルドできません。

Java SDK のインストール関連ではないかと思い調べたものの一向に解消できないのでご教示お願いします。

詳細

環境

Visual Studio Community 2017 for Mac Version 7.2 (build 636) Runtime: Mono 5.4.0.212 (2017-06/fbc487ff424) (64-bit) GTK+ 2.24.23 (Raleigh theme) Xamarin.Android バージョン:8.0.0.33 (Visual Studio Community) Android SDK: /Users/sugita-toshinori/Library/Developer/Xamarin/android-sdk-macosx サポートされている Android バージョン: 4.0.3 (API レベル 15) 4.1 (API レベル 16) 4.2 (API レベル 17) 4.3 (API レベル 18) 4.4 (API レベル 19) 4.4.87 (API レベル 20) 5.0 (API レベル 21) 5.1 (API レベル 22) 7.0 (API レベル 24) 7.1 (API レベル 25) 8.0 (API レベル 26) SDK ツールのバージョン: 26.1.1 SDK プラットフォーム ツールのバージョン: 26.0.1 SDK ビルド ツールのバージョン: 26.0.2 Xamarin.Forms: 2.4.0.280

ビルドは Xamarin.Forms の Blank App のテンプレートから変更を加えていないものです。

iOS プロジェクトをスタートアッププロジェクトにしてビルドするときにはシミュレータで「Welcome to Xamarin Forms!」が表示されます。

JDK 8でビルドしたとき

$ java -version // java version "1.8.0_144" // Java(TM) SE Runtime Environment (build 1.8.0_144-b01) // Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
$ /usr/libexec/java_home -V // Matching Java Virtual Machines (1): // 1.8.0_144, x86_64: "Java SE 8" // /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home // /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(3,3): Error MSB6006: "javac" exited with code 1. (MSB6006) (EmptyForms.Droid) Target _CompileJava: /usr/bin/javac -J-Dfile.encoding=UTF8 -d obj/Debug/android/bin/classes -classpath /Library/Frameworks/Mono.framework/External/xbuild-frameworks/MonoAndroid/v7.1/mono.android.jar:obj/Debug/__library_projects__/FormsViewGroup/library_project_imports/formsviewgroup.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Animated.Vector.Drawable/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Compat/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Core.UI/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Core.Utils/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Design/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Fragment/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Media.Compat/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Transition/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Vector.Drawable/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.v4/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.v7.AppCompat/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.v7.CardView/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.v7.MediaRouter/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.v7.Palette/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.v7.RecyclerView/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Annotations/library_project_imports/support-annotations.jar -bootclasspath /Users/sugita-toshinori/Library/Developer/Xamarin/android-sdk-macosx/platforms/android-25/android.jar -encoding UTF-8 "@/var/folders/71/h4sdrnqx7_gbb2h2rs_b08cmw60l5q/T/tmp1fe84b21.tmp" エラー: /Library/Java/Extensions/commons-logging-api.jarの読込みエラーです。/Library/Java/Extensions/commons-logging-api.jar (Permission denied) 注意:一部の入力ファイルは非推奨のAPIを使用またはオーバーライドしています。 注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。 注意:入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。 注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。 エラー1個 /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1913,3): error MSB6006: "javac" exited with code 1.

JDK 9でビルドしたとき

$ java -version // java version "9" // Java(TM) SE Runtime Environment (build 9+181) // Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
$ /usr/libexec/java_home -V // Matching Java Virtual Machines (1): // 9, x86_64: "Java SE 9" // /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home // /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(3,3): Error MSB6006: "javac" exited with code 2. (MSB6006) (EmptyForms.Droid) Target _CompileJava: /usr/bin/javac -J-Dfile.encoding=UTF8 -d obj/Debug/android/bin/classes -classpath /Library/Frameworks/Mono.framework/External/xbuild-frameworks/MonoAndroid/v7.1/mono.android.jar:obj/Debug/__library_projects__/FormsViewGroup/library_project_imports/formsviewgroup.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Animated.Vector.Drawable/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Compat/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Core.UI/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Core.Utils/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Design/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Fragment/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Media.Compat/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Transition/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Vector.Drawable/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.v4/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.v7.AppCompat/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.v7.CardView/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.v7.MediaRouter/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.v7.Palette/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.v7.RecyclerView/library_project_imports/bin/classes.jar:obj/Debug/__library_projects__/Xamarin.Android.Support.Annotations/library_project_imports/support-annotations.jar -bootclasspath /Users/sugita-toshinori/Library/Developer/Xamarin/android-sdk-macosx/platforms/android-25/android.jar -encoding UTF-8 "@/var/folders/71/h4sdrnqx7_gbb2h2rs_b08cmw60l5q/T/tmp58356d5a.tmp" javac: オプション--boot-class-pathはターゲット1.9とともに指定できません /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1913,3): error MSB6006: "javac" exited with code 2. Done building target "_CompileJava" in project "EmptyForms.Droid.csproj" -- FAILED.

よく見たらこっちの方がそれっぽいログだった…JDK 9ってダメ…?

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(604,2): warning : Failed to get the Java SDK version. Found java version "9" /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(604,2): warning : Java(TM) SE Runtime Environment (build 9+181) /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(604,2): warning : Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode) /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(604,2): warning : but this does not seem to contain a valid version number. /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1913,3): error MSB6006: "javac" exited with code 2.

JDK なしでビルドしたとき

Error finding Android/Java SDKs The "ResolveSdks" task failed unexpectedly.

その他試したこと

  • PC の再起動
  • Visual Studio for Macの再起動
  • Visual Studio for Macの再インストール
  • ソリューションの作り直し
  • SDK マネージャーから SDK の場所 → Android プラットフォーム のアップデートの適用
  • Java JDK (8、9)の削除とインストール
  • brew cask reinstall java でインストールできる Java と ORACLE 公式ページからダウンロードできるインストーラでインストールできる Java とでビルド時の挙動を比較する

よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

まず、AndroidはJava9をサポートしていないので、Java9で試しても無理です。

Java8でビルドした時の実際のエラーメッセージはコレですね:

エラー: /Library/Java/Extensions/commons-logging-api.jarの読込みエラーです。/Library/Java/Extensions/commons-logging-api.jar (Permission denied)

Xamarin.Androidではcommons-logging-api.jarを使用していないので、このJava用ライブラリはローカル環境に何らかの目的でXamarinとは無関係にインストールされたものでしょう。Androidアプリケーションのビルド時には(通常はビルド環境でセットアップされている)Oracle Javacが使用されるので、これがデフォルトでこのライブラリを参照するような設定になっているのだと思います。

それで、このライブラリが何かしらの理由でエラーメッセージの通り、permission deniedを返しているのでしょう。

解決策として考えられるのは、このファイルがビルド環境のアカウントで読み込めるか、もしかしたら実行できるか(Javacの実装次第なのでわたしにはわかりません)どうかをチェックkして、無効なら有効にして試してみる、といったところでしょうか。それでダメだったら、このファイル自体を(バックアップをどこかに残して)消して試してみるといいと思います。

投稿2017/10/17 05:25

atsushieno

総合スコア121

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

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

toshi0607

2017/10/17 05:50

ありがとうございます!!! 以下全てに `chmod` することでビルドできるようになりました!!! ``` /Library/Java/commons-logging-api.jar /Library/Java/Extensions/jasn.jar /Library/Java/Extensions/serializer.jar /Library/Java/Extensions/xml-apis.jar /Library/Java/Extensions/xercesImpl.jar /Library/Java/Extensions/xmlParserAPIs.jar /Library/Java/Extensions/xmlsec.jar /Library/Java/Extensions/xsltc.jar ```
guest

0

Multi-Dex を有効にするとかどうでしょう?

投稿2017/10/16 13:11

_shunsuke_kawai

総合スコア104

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

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

_shunsuke_kawai

2017/10/16 13:24

それがダメなら Java ヒープサイズを 1G って書いてみるとか。
toshi0607

2017/10/17 05:53

ありがとうございます!Javaのライブラリのパーミンションを変更することでビルドできるようになりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問