<!-- 安装解包权限 -->
<uses-permission android:name="android.permission.INSTALL_PACKAGES"></uses-permission>
public File write2SDFromInput(String dir ,String fileName,InputStream input){  
        File file = null;  
        OutputStream output = null;  
        try {  
            createSDDir(dir);
            
            file = createSDFile(dir,fileName);  
            output = new FileOutputStream(file);  
            byte[] buffer = new byte[FILESIZE];
            int length;
            int currentLength = 1;
            int times = 0;
            
            while((length = input.read(buffer)) != -1){  
                output.write(buffer, 0, buffer.length);
                currentLength += length;
                if( times > 100 || currentSchedule == fileLength){
                 times = 0;
                 currentSchedule = currentLength * 100 / fileLength;
                 mHandler.sendEmptyMessage(4);
                }
                times ++;
            }  
            output.flush();  
        }   
        catch (Exception e) {  
            e.printStackTrace();  
        }  
        finally{  
            try {  
                output.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
        return file;  
    } 
12-02 14:24:36.856: WARN/PackageParser(5669): Unable to read AndroidManifest.xml of /sdcard/hxp/hxpai.apk
12-02 14:24:36.856: WARN/PackageParser(5669): java.io.FileNotFoundException: AndroidManifest.xml
12-02 14:24:36.856: WARN/PackageParser(5669):     at android.content.res.AssetManager.openXmlAssetNative(Native Method)
12-02 14:24:36.856: WARN/PackageParser(5669):     at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:469)
12-02 14:24:36.856: WARN/PackageParser(5669):     at android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:437)
12-02 14:24:36.856: WARN/PackageParser(5669):     at android.content.pm.PackageParser.parsePackage(PackageParser.java:370)
12-02 14:24:36.856: WARN/PackageParser(5669):     at com.android.packageinstaller.PackageUtil.getPackageInfo(PackageUtil.java:79)
12-02 14:24:36.856: WARN/PackageParser(5669):     at com.android.packageinstaller.PackageInstallerActivity.onCreate(PackageInstallerActivity.java:291)
12-02 14:24:36.856: WARN/PackageParser(5669):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-02 14:24:36.856: WARN/PackageParser(5669):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
12-02 14:24:36.856: WARN/PackageParser(5669):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
12-02 14:24:36.856: WARN/PackageParser(5669):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
12-02 14:24:36.856: WARN/PackageParser(5669):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
12-02 14:24:36.856: WARN/PackageParser(5669):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-02 14:24:36.856: WARN/PackageParser(5669):     at android.os.Looper.loop(Looper.java:123)
12-02 14:24:36.856: WARN/PackageParser(5669):     at android.app.ActivityThread.main(ActivityThread.java:4363)
12-02 14:24:36.856: WARN/PackageParser(5669):     at java.lang.reflect.Method.invokeNative(Native Method)
12-02 14:24:36.856: WARN/PackageParser(5669):     at java.lang.reflect.Method.invoke(Method.java:521)
12-02 14:24:36.856: WARN/PackageParser(5669):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
12-02 14:24:36.856: WARN/PackageParser(5669):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12-02 14:24:36.856: WARN/PackageParser(5669):     at dalvik.system.NativeStart.main(Native Method)
12-02 14:24:36.876: WARN/PackageInstaller(5669): Parse error when parsing manifest. Discontinuing installation
下载过程中好像是丢失了AndroidManifest.xml文件,请问我下载的方法是不是有问题,如何修改......谢谢了。

解决方案 »

  1.   

    看代码这个应该是没有问题,检查一下打包的时候是不是没有把Manifest.xml打包到hxpai.apk里面去
      

  2.   


    让人更加头大的是我用火狐下载的可以用代码让它安装,
    而且我对比了用火狐下载的(1)和用上面代码下载的(2).
    2反而比1以下是我获取文件大小的语句:
     fileLength = urlConn.getContentLength();
    我想不应该有错啊。
    求指点......