我有一个应用程序,每3分钟从FTP服务器下载文件,然后阅读它。 我的问题是这个FTP传输只在第一次启动应用程序时工作,当计时器下次运行此方法时,应用程序崩溃。 以下是我使用计时器
调用方法的方法 Timer t2 = new Timer(180000, new ClockListener2());
t2.start();
然后
public class ClockListener2 implements ActionListener {
public void actionPerformed(ActionEvent ae) {
downloadFtp();
}
现在是FTP传输方法
public void downloadFtp() {
FTPClient client = new FTPClient();
FileOutputStream fos = null;
try {
client.connect("192.168.1.102");
client.login("anonymous", "");
String filename = "text.txt";
fos = new FileOutputStream(filename);
client.retrieveFile("/" + filename, fos);
client.logout();
client.disconnect();
if (fos != null) {
fos.close();}
} catch (Exception e) {
e.printStackTrace();
}
}
之前有人遇到过这个问题吗?可能有什么不对?
感谢。
答案 0 :(得分:1)
您可以将设备与ADB连接,以查看设备打印的日志(请参阅logcat)。如果您的应用程序崩溃,您将看到一些FATAL异常跟踪(它通常非常有用),例如:
07-24 09:33:59.285: ERROR/AndroidRuntime(4858): FATAL EXCEPTION: main
java.lang.NullPointerException
at ***.daifan.activity.***Activity.onCreateOptionsMenu(***ListActivity.java:96)
at android.support.v4.app.Watson.onCreatePanelMenu(Watson.java:44)
at com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:559)
at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu(ActionBarSherlockNative.java:65)
at com.actionbarsherlock.app.SherlockFragmentActivity.onCreatePanelMenu(SherlockFragmentActivity.java:165)
at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:417)
at com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow.java:768)
at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:3009)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4514)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
at dalvik.system.NativeStart.main(Native Method)