C# APK-解析包时出现问题
因此,我正在尝试使用ASP.NET从网页安装.APK。下面是我的ASP代码,它可以获取文件并下载到仿真器和android本身。然而,当我去运行时,我得到了解析错误C# APK-解析包时出现问题,c#,android,asp.net,apk,C#,Android,Asp.net,Apk,因此,我正在尝试使用ASP.NET从网页安装.APK。下面是我的ASP代码,它可以获取文件并下载到仿真器和android本身。然而,当我去运行时,我得到了解析错误 FileName = application.FileName; FileLocation = application.VersionLocation; FileExtension = application.FileExtension; FileNameWithExte
FileName = application.FileName;
FileLocation = application.VersionLocation;
FileExtension = application.FileExtension;
FileNameWithExtension = application.FileName + application.FileExtension;
string iUrl = Path.Combine(FileLocation, FileNameWithExtension);
Response.Clear();
Response.ContentType = "application/vnd.android.package-archive";
string Header = "Attachment; Filename=" + FileNameWithExtension;
Response.AppendHeader("Content-Disposition", Header);
FileInfo Dfile = new FileInfo(iUrl);
Response.Flush();
Response.WriteFile(Server.MapPath(Dfile.FullName));
Response.End();
我在谷歌上搜索了一个又一个,他们都建议检查30的API版本。模拟器也是30岁,Android本身也是如此。这很好
我还允许在仿真器上安装未知的应用程序,并允许谷歌在安卓系统上安装未知的应用程序。这就是我下载的地方。这很好
为了以防万一,我做了几双冷靴。这很好
有一件事我不能理解和感觉到它的原因(不知道如何或为什么),但下载前的APK是3.8mb,当它下载到模拟器或android本身时,它是3.4mb。拖放原始的3.8mb APK可以正常工作,但下载会破坏它
我就是搞不懂它为什么会损坏你检查过下载的文件了吗?apk只是一个压缩文件,里面有一堆文件。尝试将扩展名更改为.zip,然后打开这两个扩展名并进行比较。如果您无法以这种方式打开从站点下载的文件,那么它可能会以某种方式损坏。我建议使用handler而不是aspx页面,因为它可能会获得一个额外的gzip来破坏您的文件。-还要再添加一个
Response.Flush()代码>在结束()之前;并添加Response.Buffer=false
-还可以尝试响应.OutputStream.Write
而不是writefile-您必须仔细检查writefile是否为二进制文件,而不仅仅是文本文件-我从未使用过它。