你能强制 jarsigner 向我们转发斜杠吗

Can you force jarsigner to us forwards slashes

我有一个 android APK 文件,我需要解压缩它,替换一个文件,使用 jarsigner 重新签名,然后 zipalign 到一个有效的 apk。

应用程序安装没有错误,但是当 运行 它无法在 /assets/ 文件夹中找到它要查找的第一个东西。所需文件肯定在apk中,在正确的位置等

"An error has occurred in sub:main_activity_create(Jave line:375) java.io.FileNotFoundException:control.bal"

我看到的区别是原始 Manifest.MF 文件有正斜杠,但是当我在服务器上 运行 jarsigner 时,它会创建一个带有反斜杠的新 manifest.mf。有没有办法让 jarsigner 使用正斜杠? 代码是 C# .NET 运行ning 在 Azure 服务器上。

原始Manifest.MF格式

Manifest-Version: 1.0
Created-By: 1.8.0_112 (Oracle Corporation)

Name: assets/longblackbar.png
SHA1-Digest: 1Fq7U1Y/dLAVflFmTzLcC0tvKu4=

重新签名Manifest.MF格式

Manifest-Version: 1.0
Created-By: 1.7.0_51 (Oracle Corporation)

Name: assets\longblackbar.png
SHA1-Digest: vaky9S8cGhJIvh7a4LmmtWOpqAg=

原来答案是 C# ZipFileExtensions 方法是问题的原因,它创建了反斜杠。如果我将其替换为 运行 7za.exe 作为一个过程,则使用正斜杠,此后一切正常。