zyygive 2012-09-20
解决方案一、
最近把开发的android应用放在公司网站上,用IE下载后遇到了问题:扩展名.APK文件点击下载后却变成了.ZIP文件,拷贝到手机上无法安装。 如果你的下载服务器为tomcat服务器,那么,在tomcat安装目录下的conf/web.xml文件的对应位置,加上以下一行语句,指定APK文件的MIME类型为 application/vnd.android.package-archive 即可:
<mime-mapping> <extension>apk</extension> <mime-type>application/vnd.android.package-archive</mime-type> </mime-mapping>
----------------------------------------------------------------------------------------------------------------------------
解决方案二、
前段时间,在公司开发javaEE项目,网站提供了android应用的下载,结果发现很多3G上网用户下载的apk文件都变成了zip文件,但是数据库中存放的是apk文件路径,最近百思不得其解,我们公司使用的是apache-tomcat7,我就看了一下tomcat,发现在apache-tomcat7下的conf下有一个文件web.xml文件,发现里面配置了很多文件类型,比如:
<mime-mapping> <extension>wspolicy</extension> <mime-type>application/wspolicy+xml</mime-type> </mime-mapping> <mime-mapping> <extension>Z</extension> <mime-type>application/x-compress</mime-type> </mime-mapping> <mime-mapping> <extension>z</extension> <mime-type>application/x-compress</mime-type> </mime-mapping> <mime-mapping> <extension>zip</extension> <mime-type>application/zip</mime-type> </mime-mapping>
我觉得 android 应用本来就是一个压缩类型的文件,所以应该是tomcat把他换转为了zip文件了!我就在<web-app>里面添加了
<mime-mapping> <extension>apk</extension> <mime-type>application/apk</mime-type> </mime-mapping>
重新启动tomcat,发现终于可以下载apk的文件了! 呵呵 (特别说明:当时使用的服务器是linux服务器)
----------------------------------------------------------------------------------------------------------------------------
解决方案三、
前天,金山网络的一位同事向我咨询了一个问题:很多用户反映,网站上提供的Android手机应用程序文件“xxx.apk”,用IE浏览器下载,扩展名就被自动被重命名成了“xxx.zip”,拷贝到手机上无法安装。我发现,由于APK文件本身就是压缩包,如果用户的电脑上装了WinRAR(85%的装机量),用IE下载APK文件,扩展名就会被自动改为“.zip”。 如果你的下载服务器为Nginx服务器,那么,在Nginx安装目录下的conf/mime.types文件的对应位置,加上以下一行语句,指定APK文件的MIME类型为 application/vnd.android.package-archive 即可:
截至本文发布时,存在“xxx.apk”下载时被自动重命名为“xxx.zip”问题的网站很多,其中不乏一些提供Android程序下载的知名网站,例如:新浪微博、街旁网。
新浪微博官方Android手机客户端下载页:http://t.sina.com.cn/mobile/android.php
街旁Android版客户端下载页:http://we.jiepang.com/client-android/
增加APK文件的MIME类型后,用IE下载就正常了,例如:金山手机卫士、腾讯手机QQ
金山手机卫士下载页:http://m.ijinshan.com/
腾讯手机QQAndroid版下载页:http://mobile.qq.com/2010/android/
adb shell cd system/app rm *.apk21. 获取管理员权限: adb root22. 启动Activity: adb shell am start -n 包名/包名+类名。