android 软件apk自动更新实现注意点!!

1,解析xml时的NetWorkOnMainThread问题

代码:这里要注意的点就是在访问服务器网络时,不能将InputStream直接返回,因为若直接返回给主线程操作,很可能子线程的InputStream还在获取字节流,这时候就会导致这个UI线程访问网络异常,所以不能直接返回这个InputStream,直接在子线程里

操作这个输入流,然后将操作的结果返回。

private class AsyncTask_ConnVersion extends AsyncTask<String, Void, ConnData>
    {

        @Override
        protected ConnData doInBackground(String... params) {
            URL serviceAddrUrl;
            HttpURLConnection conn;
            String urlStr=params[0];
            try {
                serviceAddrUrl = new URL(urlStr);
                conn = (HttpURLConnection) serviceAddrUrl.openConnection();
                conn.connect();
                int len=conn.getContentLength();
                InputStream in=conn.getInputStream();
                HashMap<String, String> hashMap=new ParseXmlService().parseXml(in);
                connDataInfo=new ConnData(hashMap, len);
                //关闭连接
                conn.disconnect();
                return connDataInfo;
            } catch (Exception e) {
                e.printStackTrace();
            }

            return null;
        }

    }

2,FileNotFound

apk在服务器上找不到,路径都对就是文件无法访问到,这个问题我是看别人解决的:URL请求的具体实现,网上各种各样,没有什么好纠结的了。URL路径完全没有问题,替换成同目录下的其他类型文件,可以找到文件,唯独找不到文件。

找了几个小时,悄然发现,原来和IIS的设置有关系,我这边使用的测试服务器为IIS,IIS默认限制了apk类型文件的下载,所以输入流拿不到文件数据,提示“找不到文件”。

最终解决办法:

1、在管理工具里打开Internet 信息服务(IIS)管理器。然后选择需要配置的网站。

2、右侧的界面中会显示该网站的所有功能配置,我们选择并点击进入“MIME类型”。

3、在右侧的操作区选择点击“添加”MIME。

4、在弹出的添加窗口里的文件扩展名输入:APK

在MIME类型输入:application/vnd.android.package-archive

按确定。

3,版本更新时已经下载好后的apk无法安装,安装不上,代码没有问题,后来发现必须以发布的方式运行原始的apk,然后更新下下来最新的apk进行安装。即要导出当前测试的apk而不能直接在eclipse上测试更新安装这个。

时间: 2024-09-30 07:04:20

android 软件apk自动更新实现注意点!!的相关文章

转载:Android应用的自动更新模块

软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很流行使用Splash界面, 正好与自动更新配套在一起; 在这个自动更新Splash中, 使用到了 动画设置 ,SharedPerference ,pull解析 ,dialog对话框 ,http网络编程 ,handler 等. 注意一个错误 : 已安装具有该名称和不同签名的数据包 , 早上测试人员报告

[转]Android应用的自动更新

软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很流行使用Splash界面, 正好与自动更新配套在一起; 在这个自动更新Splash中, 使用到了 动画设置 ,SharedPerference ,pull解析 ,dialog对话框 ,http网络编程 ,handler 等. 注意一个错误 : 已安装具有该名称和不同签名的数据包 , 早上测试人员报告

android的apk自动检测升级

首先获取本地apk版本: /** * 获取本地软件版本 */ public static int getLocalVersion(Context ctx){ int localVersion = 0; try { PackageInfo packageInfo = ctx.getApplicationContext() .getPackageManager().getPackageInfo(ctx.getPackageName(), 0); localVersion = packageInfo.

Cocos2d-x3.1下 Android,APK自动升级

项目要做Android的自动升级,对于我们之前做iOS的转Cocos开发做Android方面的功能..... 不对说了.这里记录下我的实现过程. 原文地址:http://blog.csdn.net/qqmcy/article/details/36713113 首先我们要先知道Cocos下Android有几个Activity,我推测是只有一个,如果不对的话请批评指正啊. 所以我们要在主Activity也就是AppActivity.java里面添加如下代码: static AppActivity a

使用crontab进行Android代码的自动更新和构建

引子 最近的工作是一个在Android平台上进行开发的项目,我个人基本是不改动Android部分的代码,但是我所在的项目需要使用到Android编译出来的很多目标文件.另一方面,我又不是开发apk等基于通用Android平台的项目,即Android部分的代码是有其他同事在进行维护.那么就会有这样的场景:我需要保持Android部分代码的更新和并构建出来. 编译过整个Android工程的人都知道编译一次的时间大概要30分钟以上(如果你是独占服务器且内存超大,那么请默默走开~),要是整个工程全部进行

Android实现APP自动更新功能

现在一般的android软件都是需要不断更新的,当你打开某个app的时候,如果有新的版本,它会提示你有新版本需要更新.该小程序实现的就是这个功能. 该小程序的特点是,当有更新时,会弹出一个提示框,点击确定,则在通知来创建一个进度条进行下载,点击取消,则取消更新. 以下是详细代码: 1.创建布局文件notification_item.xml,用于在通知栏生成一个进度条和下载图标. <?xml version="1.0" encoding="utf-8"?>

Win10 禁用 WPS 各个软件的自动更新

现在买 Windows 电脑都自带 Office 2016 了,用 WPS 的同学还是挺多的,但 WPS 的自动更新很是流氓,在 Win10 中还不停的弹窗很是烦人,今天就"任务计划程序"来彻底禁止掉. 常用的 WPS 套件就是 WPS文字.WPS表格.WPS演示.金山PDF等. WPS 每次运行后,总是会在后台运行"wpscloudsrv",并且在计划任务中添加两个定时任务: WpsUpdateTask_Administrator(WPS Office Updat

Android 自动更新 + IIS7 添加APK mime

如果APK文件放在IIS下面需要添加APK的mime,否则会出现下面错误 可以在IIS上添加mime映射 .apk application/vnd.android   下面内容转自:http://www.cnblogs.com/coolszy/archive/2012/04/27/2474279.html 由于Android项目开源所致,市面上出现了N多安卓软件市场.为了让我们开发的软件有更多的用户使用,我们需要向N多市场发布,软件升级后,我们也必须到安卓市场上进行更新,给我们增加了工作量.因此

android软件自动更新的实现步骤

本篇文章是直接下载最新的APK安装的方法,并不是增量下载该APk. 转载请注明出处:http://blog.csdn.net/harryweasley/article/details/44955719,谢谢 想要实现一个android应用,自动更新下载APK软件的方法,我采取的是以下几步方法: 1.每次进入主界面时,获取服务器的数据,看是否是最新版本,是,则无操作,否,则进行以下步骤: 2.弹出是否更新软件的对话框,点击下载后 3.弹出下载的进度条的对话框,开始下载,可以上随时点击按钮,停止下载