【问题标题】:Issue with Uncompressing the .7z file in the Android evn在 Android evn 中解压 .7z 文件的问题
【发布时间】:2012-04-06 00:13:59
【问题描述】:

在尝试使用 SevenZipLib.dll 解压缩 Android evn 中包含媒体内容/文件的 .7z 文件时,获取“system.entrypointnotfoundexception: loadlibrary”。

背景: - 整个程序是用 c# 作为 MONO Android 项目编写的。没有构建/部署错误/警告。 在运行 apk 时,它会抛出“system.entrypointnotfoundexception: loadlibrary”。 - 还测试了与 windows 项目相同的代码(不是单声道) - 在 windows evn 中解压缩。

问题的假设: 7zip 内部可能正在使用 COM 组件,并且不支持 Mono 框架。

问题:

有没有人遇到过类似的问题?请建议一些可供我的 apk 用于解压缩 .7z 文件的替代 dll/框架。

【问题讨论】:

    标签: android xamarin.android unzip 7zip compression


    【解决方案1】:

    假设SevenZipLib.dllSevenZipLib Library on CodePlex,那么问题就是SevenZipLib\SevelZipLib\SevenZipArchive.cs

    [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    private static extern SafeLibraryHandle LoadLibrary(
      [MarshalAs(UnmanagedType.LPTStr)] string lpFileName);
    

    该项目包含大量 P/Invokes 到 kernel32.dllLoadLibrary()GetProcAddress()FreeLibrary())、ole32.dllPropVariantClear())、oleaut32.dllSafeArrayCreateVector())等。

    简而言之,这个库与 Windows 密切相关,并且不会以任何有意义的方式在非 Windows 平台上运行,并非没有大量工作。

    如果您在 Mono for Android 应用程序中需要 7z 支持,则需要查看不同的库。看起来7-zip SDK 包含用于读取不依赖 P/Invoke 的 LZMA 文件的 C# 源代码,所以也许这会起作用?

    【讨论】:

    • 有人成功使用了 M4A 的 7zip SDK C# 版本吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多