我从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类型发送正确的标头)
任何帮助将不胜感激。
答案 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 希望它有所帮助。