我开发了一个应用程序,所有时间我都使用真实设备(三星注5),有时使用模拟器作为测试设备。今天我上传应用程序到商店。正如标题中所解释的,当我或我的朋友下载应用程序并运行它时,它无法从互联网上获取数据并且adview是空白的。但是所有的发展时间我都没有面对这种情况。我不明白。
第一张照片,用电缆连接电脑的真实设备,我通过Android Studio运行应用程序,apk将Android工作室发送到我的真实设备。关闭并再次运行它,关闭并再次运行它。结果是一样的。一切都很好。
https://i.stack.imgur.com/CQgOJ.jpg
第二张照片,从Play商店下载并运行应用程序。所有文字和球都是空的。
https://i.stack.imgur.com/7azlc.png
的Manifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.android.vending.BILLING" />
选择了微调项目(正在运行的应用中没有出现干杯问题)
private AdapterView.OnItemSelectedListener spinnerOnItemSelectedListener = new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
mDrawDateSpinnerPosition = position;
final String drawDate = parent.getItemAtPosition(position).toString();
if (NetworkUtil.getConnectivityStatus(getContext())) {
mProgressDialog = ProgressDialog.show(getContext(), getResources().getString(R.string.please_wait), getResources().getString(R.string.loading), true, false);
new Handler().post(new Runnable() {
@Override
public void run() {
try {
mVolleyUtil.makeRequestForLotto(
getContext(),
Constants.SAYISAL,
DateUtil.formattedDateToNewFormattedDate(drawDate, Constants.DD_MM_YYYY, Constants.YYYY_MM_DD),
createSuccessListener(drawDate),
createErrorListener(drawDate));
} catch (Exception e) {
Log.e("spinnerSelectedListener", e.getMessage());
}
mProgressDialog.dismiss();
}
});
} else {
ToastUtil.show(getContext(), R.string.no_internet_access, Toast.LENGTH_LONG);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
};
CreateErrorListener (正在运行的应用中未显示Toast消息)
private Response.ErrorListener createErrorListener(final String drawDate) {
return new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
mVolleyUtil.getVolleyController().cancelPendingRequests(this);
mResult = null;
mProgressDialog.dismiss();
if (!NetworkUtil.getConnectivityStatus(getContext())) {
ToastUtil.show(getContext(), R.string.no_internet_access, Toast.LENGTH_LONG);
} else {
ToastUtil.show(getContext(), "Error occured, try again.", Toast.LENGTH_LONG);
}
}
};
}
VolleyRequest
mVolleyController.getRequestQueue().add(
new GsonRequest<>(Request.Method.GET, link + drawDate + ".json",
createErrorListener, LottoDTO.class, createSuccessListener));
请给我一个主意。发生了什么事?
答案 0 :(得分:0)
我找到了解决自己问题的方法。 如果启用了minified,则必须在pojo(model)类中使用@serializedname。 像这样:
The data couldn’t be read because it isn’t in the correct format.
所以GSON知道如何匹配pojo和JSON对象之间的数据。
解决方案来自:https://stackoverflow.com/a/30002203/3605998
现在,一切都好。谢谢。