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

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

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

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Android

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

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

ビルド

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

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

解決済

MonacaでAndroidアプリのビルドを実行するとエラーが出ます。

WeilSpinor
WeilSpinor

総合スコア170

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Android

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

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

ビルド

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

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

2回答

0評価

0クリップ

4898閲覧

投稿2019/03/03 08:21

編集2019/03/06 15:55

【使用プラグイン】
Cordova 7.1、JQuery mobile
【本文】
MonacaIDE上で制作中のプロジェクトに対し、アンドロイド用のビルドを実行すると、以下のようなエラーメッセージが出て、ビルドに失敗してしまいます。(一部抜粋。エラー全文は文末に記載します)

  • What went wrong:

Execution failed for task ':processDebugGoogleServices'.

File google-services.json is missing. The Google Services Plugin cannot function without it.

Searched Location:
/private/tmp/monaca/5c7b7f82e78885e863b88428/project/platforms/android/src/debug/google-services.json
/private/tmp/monaca/5c7b7f82e78885e863b88428/project/platforms/android/google-services.json

  • Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

ビルドしようとしているプロジェクトは、Monacaサイトで公開されているサンプルアプリ「バックエンドメモ」(https://docs.monaca.io/ja/sampleapp/samples/backend_memo/)
をそのままインポート(コピー)したもので、MonacaIDEの使い方の流れを知るために、試しに適当なアプリのソースファイルを引っ張ってきて、ビルドしてAndroid端末に入れるところまでやってみよう、と思ってやっています。

Monacaサイトのトラブルシューティングの典型例を見ましたが、以上のエラーに関しては何も載っていませんでした。そもそもMonacaでのアプリ開発における事前準備段階で飛ばしてしまった手順があったのかと思いチュートリアルを見直しましたが、一応手順通りにはやっているようでした。

エラーメッセージ「File google-services.json is missing. The Google Services Plugin cannot function without it. 」で検索を掛けたところ、1、2件ほど英語の質問サイトの記事(https://community.onsen.io/topic/3339/file-google-services-json-is-missing/2)
が出てきて、
「たぶん、Firebase設定ファイルが必要なので、どこかで探して、プロジェクトのルートに入れなければならない」
という回答がありました。
しかし、それはMonacaを使っているケースではないし、そもそもgoogle-serviceや、json、Firebaseというのが一体何なのかよくわからず、どう対処していいのかわかりません。

Googleのサイト(https://developers.google.com/android/guides/google-services-plugin)によると、とりあえず、
「Google-serviceというファイル(?)を、あなたが制作中のアプリのbuild.gradleというフォルダ(?)に入れなければならない」
と書いてありました。これは、このサンプルアプリ「バックエンド メモ」が、必要なファイルである「google-services.json」が欠損したまま公開されていた、ということでしょうか?

ご回答宜しくお願い致します。

【追記】
とりあえずgoogle-services.jsonというものをダウンロードしようと思ったのですが、どうもFirebaseというサイトに登録しないとダウンロードできないようで、いま試しています。

【追記】
エラーメッセージを見直したところ、
「project/platforms/android/src/debug/google-services.jsonという場所を探したが、google-services.jsonが見当たらない」
とのことでした。しかし、platformsから下のディレクトリが存在しなかったので、とりあえず以下の三つのディレクトリandroid/src/debug/を手動で作成してみました。
とりあえず、google-services.jsonのダウンロードに成功したら、ここに入れてみようと思います。

【追記】
どうやらFirebaseというのは、googleが提供するAndroidアプリ開発のIDEであり、
google-services.jsonというのは、Androidの開発において、googleの提供する便利なツールを利用するのに必要なファイルであるということがわかりました。
そして、google-services.jsonというファイルのダウンロード方法を調べると、このFirebase上で実行中のプロジェクトに直接埋め込む形のダウンロード方法しか出てきません。
しかし、いまやりたいのは、
「google-services.jsonファイルを、Monaca上で実行しているプロジェクトのフォルダに入れる」
ことなので、とにかくgoogle-services.jsonというファイルをそのままダウンロードすることができないのか、調べています。

【追記】
Firebaseのプロジェクト画面から、google-services.jsonをダウンロードし、Monacaのプロジェクトファイルの以下のディレクトリ、project/platforms/android/
に入れて再度デバッグビルドを実行しました。
しかし、結果は、全く同じエラーを吐き出して終わりました。
何がいけないのでしょうか?

【追記】
回答者様の仰る通りにMonaca Backendのプラグインを無効にしたら、ビルドに成功しました。その後スマホにアプリを入れて起動したら、問題なく動いています。しかし、いくつか謎があります。

①なぜMonacaBackendプラグインを無効にしたのに、スマホ上でアプリを操作すると、ちゃんと色々なデータ(メモ帳の中身や、登録メールアドレスとパスワード)がちゃんとMonacaBackend上に保存されているのか。(なぜプラグインを切ったのに連動し続けているのか)

②なぜMonacaBackendプラグインが有効になっていることで上記のようなビルドでデバッグエラーが起きたか。

③なぜ、エラーの内容通りに対応した(google-services.jsonファイルを入手し、あるべきフォルダに格納)のにも関わらず、エラーは治らなかったか。

もしよろしければ、この辺りのことも教えていただけると幸いです。

エラー全文

Fetching Build Queue Data...
-> Fetched data for queue ID 5c7b7f82e78885e863b88428
Preparing Build Environment...
Creating Project Build Workspace...
Fetching Project Content...
Downloading Project Archive...
Extracting Project Archive...
Fetching Project Info...
Initializing Builder Service
-> Cordova framework has been detected.
Search builder by config
Webview:null
Arch:null
Starting Build
cordova version: 7.1.0

  • preBuild -

  • Cordova create -

$ /data/build-server/cordova/7.1.0/bin/cordova create /private/tmp/monaca/5c7b7f82e78885e863b88428/project
Creating a new cordova project.

  • Copy res directory -

  • Copy resources directory -

  • Copy config.xml -

  • Copy package.json -

  • Copy external plugin setting files -

  • Copy www files -

  • Do npm install -

$ npm install --production

  • Cordova platform add -

$ /data/build-server/cordova/7.1.0/bin/cordova platform add /data/build-server/cordova/platforms/android/6.4.0 --nofetch
Adding android project...
Creating Cordova project for the Android platform:
Path: platforms/android
Package: io.monaca.backend
Name: Backend_Memo
Activity: MainActivity
Android target: android-26
Subproject Path: CordovaLib
Android project created with cordova-android@6.4.0
Discovered plugin "cordova-plugin-whitelist" in config.xml. Adding it to the project
Fetching plugin "cordova-plugin-whitelist@1.3.3" via npm
Installing "cordova-plugin-whitelist" for android

This plugin is only applicable for versions of cordova-android greater than 4.0. If you have a previous platform version, you do *not* need this plugin since the whitelist will be built in.

Adding cordova-plugin-whitelist to package.json
Saved plugin info for "cordova-plugin-whitelist" to config.xml
Discovered plugin "cordova-plugin-splashscreen" in config.xml. Adding it to the project
Fetching plugin "cordova-plugin-splashscreen@5.0.1" via npm
Installing "cordova-plugin-splashscreen" for android
Adding cordova-plugin-splashscreen to package.json
Saved plugin info for "cordova-plugin-splashscreen" to config.xml
Discovered plugin "cordova-custom-config" in config.xml. Adding it to the project
Fetching plugin "cordova-custom-config@5.0.2" via npm
Installing "cordova-custom-config" for android
Adding cordova-custom-config to package.json
Saved plugin info for "cordova-custom-config" to config.xml
Discovered plugin "monaca-plugin-monaca-core" in config.xml. Adding it to the project
Fetching plugin "monaca-plugin-monaca-core@3.2.1" via npm
Installing "monaca-plugin-monaca-core" for android
Adding monaca-plugin-monaca-core to package.json
Saved plugin info for "monaca-plugin-monaca-core" to config.xml
Discovered plugin "monaca-plugin-backend" in config.xml. Adding it to the project
Fetching plugin "monaca-plugin-backend@2.0.2" via npm
Installing "monaca-plugin-backend" for android
Fetching plugin "phonegap-plugin-push@2.1.3" via npm
Installing "phonegap-plugin-push" for android
Subproject Path: CordovaLib
Adding monaca-plugin-backend to package.json
Saved plugin info for "monaca-plugin-backend" to config.xml
--save flag or autosave detected
Saving android@/data/build-server/cordova/platforms/android/6.4.0 into config.xml file ...

  • Cordova prepare -

$ /data/build-server/cordova/7.1.0/bin/cordova prepare android
cordova-custom-config: Skipping auto-restore of config file backup(s)

  • Cordova prepare -

$ /data/build-server/cordova/7.1.0/bin/cordova prepare android
cordova-custom-config: Skipping auto-restore of config file backup(s)

  • Cordova compile -

$ /data/build-server/cordova/7.1.0/bin/cordova compile --debug --device
cordova-custom-config: Loaded module dependencies
cordova-custom-config: Running applyCustomConfig.js
DEBUG: Aborting applyCustomConfig.js because current hook 'before_compile' is not configured hook 'after_prepare'
cordova-custom-config: Finished applying platform config
ANDROID_HOME=/data/android-sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
:wrapper

BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed
Subproject Path: CordovaLib
Download https://jcenter.bintray.com/com/android/tools/build/gradle/maven-metadata.xml
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
at build_6nn7ii7rp8fqcdj9ea7ttns2g.run(/private/tmp/monaca/5c7b7f82e78885e863b88428/project/platforms/android/build.gradle:142)
Configuration 'compile' in project ':' is deprecated. Use 'implementation' instead.
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
publishNonDefault is deprecated and has no effect anymore. All variants are now published.
:preBuild UP-TO-DATE
:CordovaLib:preBuild UP-TO-DATE
:CordovaLib:preDebugBuild UP-TO-DATE
:CordovaLib:checkDebugManifest
:CordovaLib:processDebugManifest
:preDebugBuild
:CordovaLib:compileDebugAidl
:compileDebugAidl
:CordovaLib:packageDebugRenderscript NO-SOURCE
:compileDebugRenderscript
:checkDebugManifest
:generateDebugBuildConfig
:prepareLintJar
:generateDebugResValues
:generateDebugResources
:processDebugGoogleServices FAILED
11 actionable tasks: 11 executed

  • postBuild -

Build Error: Error: Sandbox Exec Error: [
FAILURE: Build failed with an exception.

  • What went wrong:

Execution failed for task ':processDebugGoogleServices'.

File google-services.json is missing. The Google Services Plugin cannot function without it.

Searched Location:
/private/tmp/monaca/5c7b7f82e78885e863b88428/project/platforms/android/src/debug/google-services.json
/private/tmp/monaca/5c7b7f82e78885e863b88428/project/platforms/android/google-services.json

  • Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED in 3s
Error: /private/tmp/monaca/5c7b7f82e78885e863b88428/project/platforms/android/gradlew: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.

  • What went wrong:

Execution failed for task ':processDebugGoogleServices'.

File google-services.json is missing. The Google Services Plugin cannot function without it.

Searched Location:
/private/tmp/monaca/5c7b7f82e78885e863b88428/project/platforms/android/src/debug/google-services.json
/private/tmp/monaca/5c7b7f82e78885e863b88428/project/platforms/android/google-services.json

  • Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED in 3s
]

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

oikashinoa

2019/03/03 09:59

ソースを載せずに症状だけ書かれても答えにくいですよ。 ソースといま有効にしているプラグイン一覧があると他の人でも再現させるでしょう。そこから回答者は調べることになります。 WeilSpinorさんはエラーをしっかり書いているからかなり良い方ですが、ひどい質問だと以下のように感じることがります。 "体調悪い。病院に行くの面倒くさい、恥ずかしいから電話で治して。あっもちろん無料でね。しんどいから早よして、至急ね。"と言っているようなものが結構あります。 WeilSpinorさんで確認用にmonaca で別プロジェクトを作るときに操作、コピーしたものが、今回追加で必要になるソースとか設定です。慣れてくるとこの準備段階で自分で問題に気づく事が結構あります。またちゃんと再現環境を整えたら回答も早くなります。 もっと情報を出すことをおすすめします。
WeilSpinor

2019/03/03 10:13

ご回答ありがとうございます。 ソースを載せる、ということは、ソースコードを載せること、 ということでしょうか? >確認用にmonaca で別プロジェクトを作るときに操作、コピーしたものが、今回追加で必要になるソースとか設定です いま困っているプロジェクトを複製して、プロパティを確認すると、設定やプラグイン一覧が表示される、ということでしょうか? とりあえず、自分なりに情報をもう少し追記してみようとおもいます。
WeilSpinor

2019/03/03 10:18

たぶん、プログラムのソースコードのエラーではなく、必要なファイルがない、というエラーだと思うのですが、それでもソースコードを載せたほうが良いのでしょうか? あと、プログラムのソースコードは複数あって、全部載せると長大になってしまうのですが、わかりやすく載せることは可能でしょうか?(質問が多くてすみません)
oikashinoa

2019/03/03 10:53

ソースコードを同じエラーを出すのに必要な部分だけに絞って、別プロジェクトを作ってみてください。 自分で問題に気づく事が多々有りますし、ソースをを載せやすくなります。 ありがちなのが、そのままコピペしても動かない状態で削る事が結構あります。 エラー再現に不要な部分を削ってみてください

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Android

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

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

ビルド

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

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。