更新
我卸载并再次安装了测试设备上的应用程序,它开始正常工作。
我正在实现APK扩展文件支持(但不支持XAPK库)。
文档意味着,如果缺少所需的APK扩展文件(例如,从obb文件夹中删除),我的应用程序将重新下载它。这对我来说并没有发生;我的应用程序一直在说NO_DOWNLOAD_REQUIRED。似乎Google从其SQLite数据库下载的信息为null。注意,我还没有更新Google上的APK草稿和扩展文件--它们仍然是第一个版本。此外,上传到Google的APK的versionCode也与测试设备上的相同。
详情如下:
我刚刚在某个地方读到,上传到Google的APK扩展文件需要几个小时才能生效。在我的例子中,我在上传后立即测试了我的实现。但它一定注意到了谷歌播放的文件,因为它给出了不同的信息(“下载完成”),而不是“找不到资源”。遗憾的是,它实际上没有下载任何东西;从那以后,它甚至没有尝试(它一直返回NO_DOWNLOAD_REQUIRED)。
我遗漏了什么?
如果APK扩展文件被删除,Downloader不应该注意吗?它的实现似乎可以处理这个问题,但只有当SQLite数据库查询返回可下载文件的非空时才能实现。
Google Play Downloader内部实现的相关部分(最后一个评论是我的):
int status = NO_DOWNLOAD_REQUIRED;
// the database automatically reads the metadata for version code
// and download status when the instance is created
DownloadsDB db = DownloadsDB.getDB(context);
// we need to update the LVL check and get a successful status to
// proceed
if (isLVLCheckRequired(db, pi)) {
status = LVL_CHECK_REQUIRED;
}
// we don't have to update LVL. do we still have a download to start?
if (db.mStatus == 0) {
DownloadInfo[] infos = db.getDownloads();
if (null != infos) {
for (DownloadInfo info : infos) {
if (!Helpers.doesFileExist(context, info.mFileName, info.mTotalBytes, true)) {
status = DOWNLOAD_REQUIRED;
db.updateStatus(-1);
break;
}
}
}
/// <----- This is when infos==null, in this case result will be NO_DOWNLOAD_REQUIRED
} else {
status = DOWNLOAD_REQUIRED;
}
发布于 2014-03-28 23:28:59
如果遇到同样的问题,请卸载应用程序,然后再安装它。(不要让Eclipse按照通常的方式重新安装它。(手动将其从设备上完全卸载。)
https://stackoverflow.com/questions/22674348
复制相似问题