问题描述
||
我目前正在尝试在我的Android应用中实现DropBox。我已经为Android添加了客户端jar文件,当我尝试登录到我的开发保管箱帐户时,它会继续强制关闭我的应用程序。
下面是我在哪里出错的代码
import android.os.AsyncTask;
import android.util.Log;
import com.dropBox.client.DropBoxAPI;
public class LoginASyncTask extends AsyncTask<Void,Void,Integer> {
private static final String TAG = \"LoginASyncTask\";
String mUser;
String mPassword;
String mErrorMessage = \"\";
DropBoxLogin mDropBoxLogin;
DropBoxAPI.Config mConfig;
DropBoxAPI.Account mAccount;
public LoginASyncTask(DropBoxLogin act,String user,String password,DropBoxAPI.Config config)
{
super();
mDropBoxLogin = act;
mUser = user;
mPassword = password;
mConfig = config;
}
@Override
protected Integer doInBackground(Void...params)
{
try
{
DropBoxAPI api = mDropBoxLogin.getAPI();
int success = DropBoxAPI.STATUS_NONE;
if (!api.isAuthenticated())
{
//Going wrong on this line
mConfig = api.authenticate(mConfig,mUser,mPassword);
mDropBoxLogin.setConfig(mConfig);
success = mConfig.authStatus;
if (success != DropBoxAPI.STATUS_SUCCESS)
{
return success;
}
}
mAccount = api.accountInfo();
if (!mAccount.isError())
{
return DropBoxAPI.STATUS_SUCCESS;
}
else
{
Log.d(TAG,\"Account Info Error: \" + mAccount.httpCode + \" \" + mAccount.httpReason);
return DropBoxAPI.STATUS_FAILURE;
}
}
catch (Exception e)
{
Log.d(TAG,\"Error in loggin in\",e);
return DropBoxAPI.STATUS_NETWORK_ERROR;
}
}
@Override
protected void onPostExecute(Integer result)
{
if (result == DropBoxAPI.STATUS_SUCCESS)
{
if (mConfig != null && mConfig.authStatus == DropBoxAPI.STATUS_SUCCESS)
{
mDropBoxLogin.storeKeys(mConfig.accesstokenKey,mConfig.accesstokenSecret);
mDropBoxLogin.setLoggedIn(true);
mDropBoxLogin.showToast(\"Logged into dropBox\");
}
if (mAccount != null)
{
mDropBoxLogin.displayAccountInfo(mAccount);
}
else
{
if (result == DropBoxAPI.STATUS_NETWORK_ERROR)
{
mDropBoxLogin.showToast(\"Network Error: \" + mConfig.authDetail);
}
else
{
mDropBoxLogin.showToast(\"Unsuccessful Login\");
}
}
}
}
}
它继续在logcat中提出堆栈跟踪错误,如下所示
致命异常:ASyncTask#1
java.lang.RuntimeException:执行doInBackground()时发生错误
编辑
@Kannan Goundan发现,这是由以下原因引起的:
java.lang.NoClassDefFoundError:oath.signpost.basic.DefaultOAuthConsumer
我不知道这意味着什么或如何解决此问题。
解决方法
我设法解决了这个问题。我没有将一个jar文件(signpost-core)导入项目构建路径。一旦将其导入,便可以正常工作。