Java Android应用程序在启动bufferedRead后停止工作
我对Android Java编程有一些问题 这就是我的情况:Java Android应用程序在启动bufferedRead后停止工作,java,android,Java,Android,我对Android Java编程有一些问题 这就是我的情况: 我正在尝试从文本文件加载文本行 我将把每一行作为一个单独的字符串变量 保存在ArrayList中 我在运行应用程序方面没有问题,但是当我 按下将向方法发送变量的按钮,其中 应用程序将使用将每一行作为单独的问题 按下手机上的按钮后,整个屏幕都冻结了 我不知道如何解决这个问题。此外,我无法从logcat中获得错误,非常奇怪 我是一名编程新手,但我尽了最大努力,所以非常感谢您的帮助。请询问您是否不理解或需要更多信息,和平。我已经修复了我
- 我正在尝试从文本文件加载文本行
- 我将把每一行作为一个单独的字符串变量
保存在
中ArrayList
- 我在运行应用程序方面没有问题,但是当我 按下将向方法发送变量的按钮,其中 应用程序将使用将每一行作为单独的问题
- 按下手机上的按钮后,整个屏幕都冻结了
public void levelOne(View v)throws IOException{
Intent intent = new Intent(this, pageBeforeAction.class);
Button buttond = (Button) findViewById(R.id.buttonOne);
createQuestions("hogskoleprovet.txt");
startActivity(intent);
}
public void levelTwo(View v) throws IOException{
Intent intent = new Intent(this, pageBeforeAction.class);
Button buttonC = (Button) findViewById(R.id.buttonTwo);
createQuestions("hogskoleprovet.txt");
startActivity(intent);
}
public void createQuestions(String hogskoleprovet) throws IOException{
InputStream iS = getResources().getAssets().open(hogskoleprovet);
BufferedReader reader = new BufferedReader(new InputStreamReader(iS));
String question = reader.readLine();
String answer = reader.readLine();
String answerOne = reader.readLine();
String answerTwo = reader.readLine();
String answerThree = reader.readLine();
String answerFour = reader.readLine();
while(reader != null){
question = reader.readLine();
answer = reader.readLine();
answerOne = reader.readLine();
answerTwo = reader.readLine();
answerThree = reader.readLine();
answerFour = reader.readLine();
Question q = new Question (question, answer, answerOne, answerTwo, answerThree, answerFour);
mQuestions.add(q); break; }reader.close(); }
这是我的logcat的输出:
26837-26837/com.example.arnpet.ultimatehogskoleprovet E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.arnpet.ultimatehogskoleprovet, PID: 26837
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:3969)
at android.view.View.performClick(View.java:4637)
at android.view.View$PerformClick.run(View.java:19422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5479)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at android.view.View$1.onClick(View.java:3964) at android.view.View.performClick(View.java:4637)
你陷入了一个无限循环,这里:
while (reader != null)
reader
的值在任何地方都不会设置为null,因此您会陷入循环。在执行BufferedReader reader=new BufferedReader(new InputStreamReader(is))后,从代码中代码>您需要输入问题、答案、答案一、答案二、答案三和答案四的值。你在这么做吗?我想我在这么做。这些值将根据数组确定。现在我终于从日志中得到了错误:错误是什么???你能发布日志04-18 19:12:22.933 20787-20787/?D/QSEECOMAPI:﹕ QSEECom_get_handle sb_length=0x104e80 04-18 19:12:22.933 20787-20787/?E/QSEECOMAPI:﹕ 错误::无法打开/dev/qseecom设备。请编辑问题并发布完整的日志。但是我已经将读取器设置为不等于null,那么为什么它应该是一个无限循环呢?