无法安装APK托管我自己的apache服务器

时间:2010-08-25 19:02:02

标签: android

我从eclipse导出了一个apk。如果我把它复制到手机的SD卡上,我可以毫无问题地安装它。

当尝试通过手机(Galaxy S)浏览器下载时,我得到: “下载不成功”。

我在mime.types中设置了mime类型application / vnd.android.package-archive,重启了apache,结果仍然相同。 还尝试过:

<a href="downloads/my_apk.apk" type="application/vnd.android.package-archive">Download App</a>

仍然没有运气。

我可以从Android市场下载和安装应用程序。我怀疑apache没有发送mime类型,但这只是在黑暗中拍摄。 如何解决问题并能够从我的Web服务器安装APK? (或至少检查apache是​​否使用mime类型发送正确的标头)

任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:17)

最好将.apk扩展名添加到apache的mime配置中。看看这个例子: https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

您可以找到“apk”记录并将该行复制到服务器上的/etc/mime.types文件中:

application/vnd.android.package-archive     apk

同时将其添加到/etc/apache2/mods-available/mime.conf:

AddType application/vnd.android.package-archive .apk

(还有其他一些AddType-s,肯定会把它放在它们之后)。 从这里开始,你不必在标签中添加apk的mime-type,服务器将处理这个问题。 ;)

更新:修复了AddType行中的错误

答案 1 :(得分:9)

毕竟我发现问题部分归功于CommonsWare的建议。

我为下载提供apks的目录受simpe auth保护。手机的浏览器在浏览时正确询问(一次)用户名/密码,但显然在尝试下载文件时忘记发送身份验证信息,导致401未经授权。

解决方案:从该目录中删除基本身份验证或使用其他未受保护的目录来执行apks。

答案 2 :(得分:2)

使用curl测试Web服务器以确保它响应HTTP请求并返回正确的MIME类型。此外,您的服务器会记录以查看正在记录的错误。

答案 3 :(得分:1)

有时您无法访问/etc/mime.types等apache配置文件,尤其是在共享服务器上。您可以在根目录中创建文件.htaccess(如果已存在则打开)并添加以下字符串: AddType application / vnd.android.package-archive .apk 希望它有所帮助。