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

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

ただいまの
回答率

90.52%

  • Java

    13767questions

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

  • Android

    6513questions

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

Attempt to invoke virtual method on a null を解決したい

解決済

回答 3

投稿 編集

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

タイトルの通り、Attempt to invoke virtual method on a null を解決したいです。

ソースとログ

以下Logです:

03-22 16:09:13.525 17928-17928/com.kitunebi.sunsolararrow.flashanzan E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                       Process: com.kitunebi.sunsolararrow.flashanzan, PID: 17928
                                                                                       java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.kitunebi.sunsolararrow.flashanzan/com.kitunebi.sunsolararrow.flashanzan.MathActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
                                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2345)
                                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494)
                                                                                           at android.app.ActivityThread.access$900(ActivityThread.java:153)
                                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1347)
                                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                           at android.os.Looper.loop(Looper.java:148)
                                                                                           at android.app.ActivityThread.main(ActivityThread.java:5451)
                                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                                        Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
                                                                                           at android.app.Activity.findViewById(Activity.java:2139)
                                                                                           at com.kitunebi.sunsolararrow.flashanzan.MathActivity.<init>(MathActivity.java:19)
                                                                                           at java.lang.Class.newInstance(Native Method)
                                                                                           at android.app.Instrumentation.newActivity(Instrumentation.java:1068)
                                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2335)
                                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494) 
                                                                                           at android.app.ActivityThread.access$900(ActivityThread.java:153) 
                                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1347) 
                                                                                           at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                           at android.os.Looper.loop(Looper.java:148) 
                                                                                           at android.app.ActivityThread.main(ActivityThread.java:5451) 
                                                                                           at java.lang.reflect.Method.invoke(Native Method) 
                                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616

関係ありそうなソースコードです。
MathActivity.java

//パッケージを定義したりインポートするコードは省略

/** This activity sets a question. */
public class MathActivity extends Activity {
    /** timer. */
    Timer timer;
    /** It displays a number. */
    TextView tv;       /19行目
    /**The number of times change the text.*/
    int kutisu;
    /**Max number.*/
    int max;
    /**The speed change the text*/
    int speed;
    /**The answer*/
    int answer;
    /**Handler. This is used in order to change the text(UI). */
    Handler mHandler = new Handler();
    /**onCreate method. */
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_plusminus);
        this.tv=(TextView)findViewById(R.id.set);
    }
    protected void onResume(){
        super.onResume();

        //This code initializes kutisu, max, and speed.
        Intent intent = getIntent();
        this.kutisu = Integer.parseInt(intent.getStringExtra("kutisu"));
        this.max = Integer.parseInt(intent.getStringExtra("max"));
        speed(Integer.parseInt(intent.getStringExtra("speed")));

        startTimer();//Start a timer

        //Start a new activity
        intent.setClassName(this,"AnswerActivity");
        intent.putExtra("answer", answer);
        startActivity(intent);
    }
    //speedメソッドやstartTimerメソッド。省略
  ・
  ・
  ・
}

レイアウト

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="願いましては"
        android:id="@+id/set"
       <!--定義しているのですが--->
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:textSize="50dp" />
</RelativeLayout>

android:id="@+id/set"と書いたのですが、エラーが出ています。また、[これ](https//teratail.com/questions/34048)を見ましたが原因が違いそうです。(もしも原因が一緒ならすみません)

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • swordone

    2017/03/23 00:21

    このエラーが出た時点でのMathActivityの19行目は、onCreateの中のfindViewByIdで間違いないですか?

    キャンセル

  • sun-solar-arrow

    2017/03/23 06:47

    はい、間違いないと思います。

    キャンセル

  • uniko

    2017/03/23 12:50

    リソース周りの問題ならClean buildあたりで直るって事はないですかね?

    キャンセル

回答 3

+1

findViewById(int)
あたりでエラーになっているので

startActivity(intent);


これで飛んだ先でもMathActivityのtvを表示させようとしているとか...

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

check解決した方法

0

すみません、ビルドし直したら何故か出なくなりました。
前のビルドがうまくできてなかったのかな。。。
あと、回答を投稿してなくてすみません。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/03/30 18:07

    R側が更新されてなかったのだと思われ。対応するIDがずれてる状態なのでコンパイルは通ります。そしてよくあります。
    レイアウトの順番変えたりするだけでも起きる場合あるのでなんかリソース関連で落ちたらとりあえずビルドし直しは覚えておいたほうがいいです。

    キャンセル

0

もしかして、と思って書きますが、

setContentView(R.layout.activity_plusminus);
this.tv=(TextView)findViewById(R.id.set);

R.id.setで読んでいるTextViewは、activity_plusminusの中で定義しているものでしょうか?
他のレイアウトファイルで定義しているということはないでしょうか。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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

  • Java

    13767questions

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

  • Android

    6513questions

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