我一直试图让一些非常简单的代码工作,它应该读取一个在线文件并在日志中打印该文件的内容。起初我并不知道它需要在一个单独的线程中处理,所以我将它留在onCreate方法中。现在我借助这个问题把它放到一个单独的线程中:How to use separate thread to perform http requests但应用程序仍然崩溃!由于我迫不及待地想要使用这个,所以我可以继续学习如何编写这个应用程序,我将插入我使用的确切代码:
package com.dan6erbond.schoolhelper;
import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
private String link = "https://dan6erbond.github.io/I1A/Documents/Zusammenfassungen/Zusammenfassungen.json";
String content;
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
Log.i("TAG", content);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Thread downloadFile = new Thread(new Runnable(){
@Override
public void run(){
try {
URL url = new URL(link);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
String str;
while ((str = in.readLine()) != null) {
content += str;
}
Log.i("TAG", content);
in.close();
} catch (Exception e) {
Log.i("TAG", "Error occured!");
}
handler.sendEmptyMessage(0);
}
});
downloadFile.start();
}
}
在日志中发送错误消息:
01-05 07:40:33.320 9601-9622/com.dan6erbond.schoolhelper I/TAG: Error occured!
如果有人可以帮我解决这个问题,我真的很开心。它可能非常简单,但我刚开始在Android Studio中进行编码,所以我对此非常陌生。
答案 0 :(得分:0)
我只需要添加INTERNET权限。我通过打印错误消息来解决这个问题:
spring.datasource.tomcat.max-active=50
导致了这个:
Log.i("TAG", e.getMessage());
我刚将其添加到Android Manifest:
01-05 08:05:10.806 11815-11838/com.dan6erbond.schoolhelper I/TAG: Permission denied (missing INTERNET permission?)
感谢大家的帮助!