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

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

ただいまの
回答率

90.37%

  • Java

    15109questions

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

  • Android Studio

    4115questions

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

AndroidStudioのBuildエラーについて

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,010

hide09090909

score 50

前提・実現したいこと

AndroidStudioでカレンダーを表示する機能を実装したのですが、Buildを行うとエラーが表示され、原因がわかりません。

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

Error:(1, 16) エラー: ';'がありません
Error:Execution failed for task ':compileDebugJavaWithJavac'.

Compilation failed; see the compiler error output for details.

エラーメッセージ

該当のソースコード

package cordova-plugin-am-i-late;

import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 * This class echoes a string called from JavaScript.
 */
public class AmILate extends CordovaPlugin {

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        if (action.equals("getNextAppointment")) {
            int minutes = args.getInt(0);
            this.getNextAppointment(minutes, callbackContext);
            return true;
        }
        return false;
    }

    private void getNextAppointment(int minutes, CallbackContext callbackContext) {
        if (minutes > 0) {
            /**
             Code to retrieve name, time of next appointment goes here
             **/
            if (foundAppointment) {
                JSONObject returnObject = new JSONObject();
                returnObject.put("title", appointmentTitle);
                returnObject.put("date", appointmentDate);
                callbackContext.success(returnObject);
            } else {
                // If no appointment was found, return an empty string.
                // Note that we used success() rather than error(), since
                // no finding an appointment is perfectly valid. Error
                // conditions should be reserved for situations where
                // the plugin was unable to complete its task at all.
                callbackContext.success("");
            }
        } else {
            callbackContext.error("minutes must be > 0");
        }
    }
}

試したこと

課題に対してアプローチしたことを記載してください

補足情報(言語/FW/ツール等のバージョンなど)

より詳細な情報

原因/解決策がわかった方は教えていただけると幸いです。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

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

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

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

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

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

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

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

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

package名は「名前に使える文字の並びをピリオドで区切ったもの」ですが、ハイフン('-')は使えません。コンパイラーはハイフンの直前で「名前が途切れている」と解釈して「名前の次にはセミコロンがくるはずだ」と考えるのでこういうメッセージになります。

package cordova - plugin - am - i - late;
               ^ここにセミコロンがないとおかしい(by コンパイラー)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/08 13:45

    ご回答ありがとうございます。
    ご指摘いただいた部分を修正すると以下のエラーに変化してしまいました。
    どこがいけないのでしょうか?

    Error: /Users/m713913/myApp/Hello5/platforms/android/gradlew: Command failed with exit code 1 Error output:
    注意:一部の入力ファイルは非推奨のAPIを使用またはオーバーライドしています。
    注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
    /Users/m713913/myApp/Hello5/platforms/android/src/cordova/plugin/am/i/late/AmILate/AmILate.java:30: エラー: シンボルを見つけられません
    if (foundAppointment) {
    ^
    シンボル: 変数 foundAppointment
    場所: クラス AmILate
    /Users/m713913/myApp/Hello5/platforms/android/src/cordova/plugin/am/i/late/AmILate/AmILate.java:30: エラー: 型の開始が不正です
    if (foundAppointment) {
    ^
    /Users/m713913/myApp/Hello5/platforms/android/src/cordova/plugin/am/i/late/AmILate/AmILate.java:32: エラー: シンボルを見つけられません
    returnObject.put("title", appointmentTitle);
    ^
    シンボル: 変数 appointmentTitle
    場所: クラス AmILate
    /Users/m713913/myApp/Hello5/platforms/android/src/cordova/plugin/am/i/late/AmILate/AmILate.java:33: エラー: シンボルを見つけられません
    returnObject.put("date", appointmentDate);
    ^
    シンボル: 変数 appointmentDate
    場所: クラス AmILate
    エラー4個

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':compileDebugJavaWithJavac'.
    > Compilation failed; see the compiler error output for details.

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

    キャンセル

  • 2016/11/08 14:04 編集

    自分はAndroiのプログラミングをしたことがなく環境がありません。javaの一般文法や共通のライブラリーについてなら助言できますが、その範囲を超えた内容は他の方に回答をゆずりたいと思います。

    なお修正したなら質問文のコードを修正後のコードに置き換えてください。回答者の方々にはあなたの最新のコードがわからないと正確に答えられません。

    キャンセル

  • 2016/11/08 16:11

    すみません。自己解決できました。
    ご指摘ありがとうございます。
    今後は気をつけます。

    キャンセル

  • 2016/11/08 17:22

    解決したのなら「解決済み」にしてください。

    キャンセル

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

  • Java

    15109questions

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

  • Android Studio

    4115questions

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