Posted at

Androidアプリが落ちてしまいます。ボタンをクリックするだけで落ちます。

このようなエラーが出ます。

どこがおかしいのでしょうか。

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

以下がコードとなっています。

package com.example.tokoroshingo.myapplication;

import android.content.Intent;

import android.content.res.Resources;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.content.Context;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

public class FileActivity1 extends AppCompatActivity {

private TextView textView;

private EditText editText;
private String fileName[] = new String[15] ;
private int i;
private Button buttonRead[] = new Button[15];

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_file1);

textView = findViewById(R.id.text_view);

for(i=0; i<15; i++){
fileName[i] = "CH1_"+i+1+".txt";
int viewId;
String resViewName;
resViewName = "button_ch" + i+1;
viewId = getResources().getIdentifier(resViewName, "id", getPackageName());
buttonRead[i] = findViewById(viewId);
buttonRead[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str = readFile(fileName[i]);
if (str != null) {
textView.setText(str);
} else {
textView.setText(R.string.read_error);
}
TextView textReceive1 = (TextView) findViewById(R.id.text_view1);
textReceive1.setText("CH"+ i);
}
});

}

// editText = findViewById(R.id.edit_text);

Button return_file_Button1 = findViewById(R.id.return_file_button1);
return_file_Button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplication(), SubActivity5.class);
startActivity(intent);
}
});

}

// ファイルを読み出し
public String readFile(String file) {
String text = null;

try {
FileInputStream in = openFileInput(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String str = "";
String tmp;
while ((tmp = reader.readLine()) != null) {
str = str + tmp + "\n";
}
text = str;
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
return text;
}

}