gpt4 book ai didi

Android 应用程序在单独文件中调用函数时崩溃

转载 作者:行者123 更新时间:2023-11-29 18:03:27 25 4
gpt4 key购买 nike

我有一个正在开发的 Android 应用程序,我的代码可以正常工作 我只是想通过将某些功能移到单独的文件中来稍微清理一下它。然而,每当我尝试从一个单独的文件中调用其中一个函数时,它就会崩溃并提示 FATAL EXCEPTION: AsyncTask #5。我在单独的文件中创建了一个构造函数,我认为我做的是正确的,但我想不是。任何帮助表示赞赏。

这是我的代码:

DatabaseManager database;

public class loginTask extends AsyncTask<String, String, String> {

//check if server is online
protected String doInBackground(String... params) {
Log.d("test", "1");
String username = params[0];
String password = params[1];
URI absolute = null;
Log.d("test", "2");
try {
Log.d("test", "3");
absolute = new URI("http://link.com/webservice/");
} catch (URISyntaxException e) {
Log.d("test", "4");
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("test", "5");
database.test();//crashes at this line
return postHttpResponse(absolute,username,password);
}

//set status bar to offline if flag is false
protected void onPostExecute(String jsonstring) {
try {
//get values from jsonobject
JSONObject jsonobj=new JSONObject(jsonstring);
checkResponse(jsonobj);
//errorMessage.setText(checkResponse(jsonobj));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

数据库管理器.java

private final String LOGIN_TAG = "Login";
public DatabaseManager(){

}

public void test(){
Log.d(LOGIN_TAG, "this is a test");
}

最佳答案

您永远不会实例化 DatabaseManager - 因此它始终保持 null。类作用域引用保持 null 直到它们被赋予一些引用(通过将新引用指向现有引用或通过创建新对象)

考虑做

database = new DatabaseManager();
Log.d("test", "5");
database.test();//shouldn't crash at this line now

关于Android 应用程序在单独文件中调用函数时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14575500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com