我有一个基于drupal的网站,人们可以登录并查看私人论坛。这是我希望我的Android应用程序的beta测试人员下载beta .apk文件的地方。我在基于Android 1.6的myTouch 3G上彻底测试了这个,并且能够登录,并且可以毫无问题地下载附加到论坛帖子的文件。
现在出现了一个有趣的部分:我在Droids和Nexus Ones(Android 2.0.1和2.1)上的测试人员抱怨说他们的下载失败了。由于我没有2.0手机,我在2.0模拟器中尝试过,而且看起来不行。下载显示一两秒钟的不确定进度,然后显示“下载失败”。
根据我在日志中看到的内容,显然服务器从2.0浏览器返回404下载请求。我可以下载到我的桌面和1.6手机没问题。我可以想到服务器将为请求返回404的唯一原因是由于某种原因,下载过程未传递凭据或cookie。 Logcat显示:http错误404下载x
一些背景: 我将mime类型添加到我的.htaccess中,如下所示: AddType application / vnd.android.package-archive apk
我检查了服务器日志,并查看以下内容的下载失败: xx.xx.xx.224 - - [28 / Jan / 2010:20:39:00 -0500]“GET /system/files/grandmajong-beta090.apk HTTP / 1.1”404 - “http://trickybits.com/forums/beta-testing/grandma-jong/latest-version-090-b1”“ Mozilla / 5.0(Linux; U; Android 1.6; en-us; sdk Build / Donut)AppleWebKit / 528.5 +(KHTML,类似Gecko)Version / 3.1.2 Mobile Safari / 525.20.1“
答案 0 :(得分:1)
这听起来像是在尝试从我自己的网络服务器上提供APK时遇到的长期问题。这不是MIME问题,它不是文件权限,并且没有路径tomfoolery继续。据我所知,它可以告诉Android浏览器中的一个错误。我找到的是Apache,如果我添加一个限制文件/目录的.htaccess文件,即你希望它从浏览器下载时提示输入用户名/密码,它会因你描述的错误而失败。删除.htaccess,一切都很好。当你有一个公共网站,你想坚持你的安全测试APK时,不好。你的网站是drupal - 我会检查这样的任何限制是否有效,或者确实如果它不是限制本身但存在.htaccess文件,因为确切原因不明确。
顺便说一下,优雅的解决方案就是使用dropbox。您可以让用户在手机上安装它,当您将APK放到手机上时,不仅会立即通知他们,而且他们只需点击状态栏中的链接并安装应用程序,即无MIME或服务器所需的工作。
答案 1 :(得分:0)
drupal文件的默认存储位置是/ sites / default / files。如果您通过Drupal上传文件(作为节点或其他),它将在这里。您还应该查看文件/sites/settings.php或文件上传设置(http:/// admin / settings / file-system)以查看文件的存储位置。
这不是MIME类型问题,因此请删除apk文件的条目,除非您希望服务器尝试读取它们。
答案 2 :(得分:0)
apk是否已签名?也许Android的更高版本只需要签名的应用程序。 http://tordtech.blogspot.com/2009/10/signing-android-applications.html
答案 3 :(得分:0)
作为2.0+手机(Droid X)的拥有者,我发现尝试下载自己的APK时遇到了同样的问题。我解决了这个问题:奇怪的是,无论出于何种原因,下载Astro文件管理器使我能够这样做。
答案 4 :(得分:0)
我知道这是一个老问题,但我现在遇到了同样的问题。
我找到的唯一解决方法是要求用户从非内置导航器下载apk,这非常令人困惑和恼人(Opera实际上工作正常)。
如果有人在浏览器中找到了构建解决方案,那么发布时会非常感激! :)
我也注意到了:
我在局域网中工作,服务器位于192.168.1.15。我已经在本地计算机的“主机”中解析了服务器地址的域名(如果没有,域名解析为路由器)。在Android中我还没有解析域名,所以当内部浏览器尝试导航到域名时,它不会解析到服务器,而是按预期解析为路由器。令人惊讶的是,Opera正在解析服务器,就像有代理或类似的东西一样。至少它的行为就像是从LAN外部传来的流量。
也许这就是使Opera能够下载文件的原因。
很抱歉,如果我的英语不够清楚,但希望这是可以理解的。