Android应用程序While循环错误

Android应用程序While循环错误,android,while-loop,Android,While Loop,我的合作伙伴计算机中有一个文本文件,托管在服务器上。我正在尝试在Android应用程序中检索文本文件中的所有字符串值。但是,我的应用程序没有输入while循环方法来读取文本文件。有办法解决吗?我的计算机已连接到我的合作伙伴服务器 方法的代码 connect.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ Thread trd = new Thread(new Run

我的合作伙伴计算机中有一个文本文件,托管在服务器上。我正在尝试在Android应用程序中检索文本文件中的所有字符串值。但是,我的应用程序没有输入while循环方法来读取文本文件。有办法解决吗?我的计算机已连接到我的合作伙伴服务器

方法的代码

connect.setOnClickListener(new View.OnClickListener(){
     public void onClick(View v){
         Thread trd = new Thread(new Runnable(){
             @Override
             public void run(){
                 //code to do the HTTP request
                 try {
                     URL url = new URL("insert url");//your website link
                     HttpURLConnection con = (HttpURLConnection)url.openConnection();
                     BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
                     String line;
                     while((line = br.readLine()) != null){
                         result.setText(line);
                     }
                     con.disconnect();
                 } catch(IOException e) {
                     System.out.println("Error");
                 }
             }
        });
        trd.start();
    }
});
}
结果不能在与UI线程不同的线程中运行。 使用

试试这个

 URL url= new URL("insert url");
    BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
    StringBuilder result= new StringBuilder();
                String line;
                while ((line = br.readLine()) != null) {
                    result.append(line + "\n");
                }

                TextView.setText(result);

这可能是因为在
HttpURLConnection con=(HttpURLConnection)url.openConnection()时触发了
NetworkOnMainThreadException

您不应该在导致此错误的蜂窝和更高版本的主线程上执行网络操作。因此,while循环从未执行过


使用
AsyncTask
执行网络操作。这里有一个链接:

我现在遇到了一个“不能在另一个方法中定义的内部类中引用非最终变量finalLine”错误,在我在eclipse上调试之后,在bufferedreader行之后,它立即跳到catch错误行。应用程序没有进入while循环,可能是什么问题?你真的在使用“插入url”吗?不,stackoverflow不允许发布url,所以我不得不用“插入url”代替它。真正的url是我从正在工作的浏览器中获取的。您是否具有internet权限?您是否在logcat中遇到异常?与NetworkOnMainThreadException类似?否,应用程序在尝试跟踪我的文件或目录时遇到问题。它仍然无法工作。我的应用程序仍然无法在我的合作伙伴服务器中跟踪该文件。我已在使用新的线程方法在另一个线程上运行连接
while((line = br.readLine()) != null)  {
final String finalLine = line;

runOnUiThread(new Runnable() {
 @Override
 public void run() {
       result.setText(finalLine);
  }
});
}
 URL url= new URL("insert url");
    BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
    StringBuilder result= new StringBuilder();
                String line;
                while ((line = br.readLine()) != null) {
                    result.append(line + "\n");
                }

                TextView.setText(result);