В настоящее время я пытаюсь внедрить DropBox в мое приложение для Android. Я добавил клиентский файл JAR для Android, и когда я пытаюсь войти в свою учетную запись Dropbox, он продолжает принудительно закрывать мое приложение.
Ниже приведен код, который я использую, где он идет не так
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 следующим образом
FATAL Исключение: ASyncTask # 1
java.lang.RuntimeException: произошла ошибка при выполнении doInBackground ()
Редактировать
@Kannan Goundan обнаружил, что в исключении это вызвано:
Java.Lang.NoClassDefFoundError: oath.signpost.basic.DefaultOAuthConsumer
Я не могу понять, что это значит или как я могу решить эту проблему.