用户无法在Android电子市场中下载我们的特定产品

时间:2011-01-31 12:32:49

标签: android google-play

我们最近将我们的游戏发布到Android电子市场,但是遇到了一个重大问题。我们收到来自世界各地的人们的电子邮件和错误报告,说他们无法下载我们的游戏。

在网络上搜索有类似问题的人我们发现有些人遇到了类似的问题,但他们无法从市场上下载任何应用程序。我们一直在处理的人可以下载除我们游戏之外的所有其他内容。报告问题的人在他们的设备内部和外部都有足够的内存。

有没有人知道问题是什么?

最诚挚的问候, 亚历

编辑: 由于问题与下载有关,我们一直在推测它是我们拥有的Android Manifest文件。

当用户从Android电子市场下载应用程序时,首先发生的事情是什么?因为当我们尝试下载我们的产品时,下载“启动”,然后错误消息“Download Unsuccessful”闪烁在条形图上。

我们的产品是付费应用程序,交易成功,但当用户尝试下载时,他们会收到错误。

似乎错误在我们提交第一次更新之后开始发生,虽然是次要而不是任何游戏更改我真的不明白这会如何影响市场行为。

2 个答案:

答案 0 :(得分:6)

这是47MB!这就是我的三星Galaxy S所说的:

D/DownloadManager( 2973): download aborted - not enough free space in internal storage
D/vending ( 6634): [174] DownloadManagerBroadcastReceiver.handleDownloadCompletedAction(): Got a download completed intent.
I/vending ( 6634): [174] DownloadManagerBroadcastReceiver.startNextDownload(): Found Paused URI null
I/vending ( 6634): [174] DownloadManagerBroadcastReceiver.startNextDownload(): No more paused downloads.
I/vending ( 6634): [174] DownloadManagerBroadcastReceiver.getDownloadStatus(): Unexpected status from download - 498
W/vending ( 6634): [174] DownloadManagerBroadcastReceiver.handleDownloadCompletedAction(): Couldn't find pathname for completed download URI
: content://downloads/download/188 -- assuming the download failed.
D/vending ( 6634): [174] LocalAssetDatabase.notifyListener(): 9122500792911627655 / DOWNLOAD_FAILED
E/DataRouter( 2577): [*] Received suspend/ resume event but DUN is not up so neglect

没有足够的内部存储空间,毫不奇怪。

您的installLocation设置为什么?应该是preferExternal(见http://developer.android.com/guide/topics/manifest/manifest-element.html#install

稍后添加

小男孩,这很糟糕......

您可以在此处浏览Android下载管理器的源代码:http://www.google.com/codesearch/p?hl=en#UMpkw0xvvPU/src/com/android/providers/downloads/Helpers.java

推断一下你可以做它的工作,以找出下载缓存目录中剩余的空间:

File base = Environment.getDownloadCacheDirectory();
long bytesAvailable = getAvailableBytes(base);

public static long getAvailableBytes(File root) {
    StatFs stat = new StatFs(root.getPath());
    // put a bit of margin (in case creating the file grows the system by a few blocks)
    long availableBlocks = (long) stat.getAvailableBlocks() - 4;
    return stat.getBlockSize() * availableBlocks;
}       

我的三星Galaxy S在此缓存中报告只有30MB是免费的,因此出现问题。然而,这款手机的整体内部存储量非常大......我至少有1.5GB免费。

显然,有一些下载缓存限制策略在起作用。非常讨厌你。

少数手机的/ cache中的空闲字节

三星Galaxy S: 30756KB

Nexus One: 94352KB

Orange旧金山: 38988KB

答案 1 :(得分:0)

2012年3月5日,谷歌宣布了一项新政策,允许最多两个“扩展文件”,每个扩展文件最多2 GB。 APK仍然限制在50MB。以下是公告:

http://android-developers.blogspot.in/2012/03/android-apps-break-50mb-barrier.html

由于此类附加文件的下载与下载APK分开发生,因此您可以通过将一大块APK移动到扩展文件中来解决问题,以便将APK大小保持在最小的下载范围内您预期的缓存限制(例如,30MB)。