私は自分自身でAndroid開発を教えるためにハングマンのゲームに取り組んでいます。私は既にJava用にPC用にしてきましたが、うまく動作しています。私はAndroid Studio 2.1を使用しています。モニターは私に多くのエラーを投げつけ続けています。私が見ているものを確認することはできません。アンドロイドのアセットファイルからの読み取り
私が苦労している部分は、アセットのファイル "WordsDoc"から読み込むことです。私が持っているコードは次のとおりです。
編集2
アプリのためのすべてのコード、これまで
public class MainActivity extends AppCompatActivity {
static String strWord = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final TextView theWord = (TextView)
findViewById(R.id.textViewWord);
final EditText editTextGuess = (EditText)
findViewById(R.id.editTextGuess);
final Button buttonGuess = (Button)
findViewById(R.id.btnGuess);
final TextView theIncorrectGuesses = (TextView)
findViewById(R.id.textViewIncorrectLetters);
setContentView(R.layout.activity_main);
alertMessage(this,"ERROR");
strWord = getTheWord();
theWord.setText(strWord);
newGame();
buttonGuess.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
theIncorrectGuesses.setText("ABCDEF");
}
});
}
public String getTheWord() {
List<String> lines = new ArrayList<String>();
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open("WordsDoc.txt")));
// do reading, usually loop until end of file reading
String mLine;
while ((mLine = reader.readLine()) != null) {
//process line
lines.add(mLine);
}
int intLen = 0;
String[] strWords = lines.toArray(new String[lines.size()]);
for (String strTemp : strWords){
intLen ++;
}
int intRand = (int)(Math.random()* intLen);
return strWords[intRand];
} catch (IOException e) {
//log the exception
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
}
return null;
}
public void newGame() {
}
public static void alertMessage(Activity a, String errMsg){
final AlertDialog.Builder builder = new AlertDialog.Builder(a);
builder.setTitle("Alert Dialog");
builder.setMessage(errMsg);
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setNeutralButton("OK", null);
builder.create().show();
}
}
編集の3
例(実際にはあまりありません!)ファイルWordsDoc.txtは次のとおりです。
aardvark
Aarhus
Aaron
... continues 45000 more times
の
編集
エラー:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.xxxx.hangman, PID: 4532
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxx.hangman/com.xxxx.hangman.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
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 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.xxxx.hangman.MainActivity.onCreate(MainActivity.java:34)
at android.app.Activity.performCreate(Activity.java:6237)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
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)
05-05 08:44:32.994 4532-4532/com.xxxx.hangman I/Process: Sending signal. PID: 4532 SIG: 9
あなたはどんなエラーが表示されていますか? –
@NongthonbamTonthoiが編集で追加されました。 – Geoff
ファイル名の拡張子はありますか? –