我最初在 Android Studio 的 libs 目录中有 ion-1.3.8.jar,compile files('libs/ion-1.3.8.jar')
在我的 build.gradle 文件中。我的 libs 文件夹中也有(并且仍然有)androidasync-1.3.8.jar,并且在 build.gradle 中有一个条目。
我想摆脱 ion jar 并使用依赖项,但是当我删除 jar 并放入compile 'com.koushikdutta.ion:ion:2.+
我的 build.gradle 文件时,我在我的一个课程中的以下代码行:result.getHeaders().get("USER-TOKEN");
.
我猜那行代码可能不是它本来应该的,但它确实适用于 Ion 1.3.8。我不知道我应该把它改成什么,虽然我可以通过一些试验和错误来弄清楚,但我想听听社区或 Koush 的意见。
此外,Android Studio 警告我“避免在版本号中使用 +;可能导致不可预测和不可重复的构建”。对此有什么想法吗?
这是我的代码:
Ion.with(activity)
.load(url)
.setJsonObjectBody(loginObject)
.asJsonObject()
.withResponse()
.setCallback(new FutureCallback<Response<JsonObject>>() {
@Override
public void onCompleted(Exception e, com.koushikdutta.ion.Response<JsonObject> result) {
String errorText = activity.getString(R.string.unable_to_login);
if (e != null) {
String errorMessage = e.getLocalizedMessage();
Log.e(TAG, errorMessage);
if (errorMessage.contains(activity.getString(R.string.unable_resolve_host))) {
errorText = activity.getString(R.string.no_internet);
}
}
else if (result != null) {
JsonElement reply = result.getResult().get(activity.getString(R.string.user));
if (reply != null) {
errorText = NO_ERROR;
SessionManager.setProfile(result.getResult());
String userToken = result.getHeaders().get(activity.getString(R.string.user_token));
SessionManager.createLoginSession(userToken);
if (SessionManager.isProfileComplete()) {
activity.startActivity(new Intent(activity, NavigationDrawerActivity.class));
}
else {
activity.startActivity(new Intent(activity, ProfileActivity.class));
}
}
else if (result.getResult().getAsJsonArray(activity.getString(R.string.errors)) != null) {
errorText = activity.getString(R.string.login_error);
}
}
else { // There was some other problem logging in
Log.e(TAG, "Unknown login problem");
}
requestCompleted.onRequestCompleted(errorText);
}
});