首页 > 解决方案 > Unity 和 Vuforia 项目丢失,我如何编辑 apk?

问题描述

我对 Unity 有一个大问题。一周前,我做了一个安卓应用,增强现实。我以 APK 格式编译了应用程序。在统一和 vuforia 中制作此应用程序一周后,在此期间我的硬盘坏了。

我的问题是,如何修改已经创建的 apk .. 因为我只创建了项目。我只有手机上留下的apk。

有没有可能?

我寻找结果..但徒劳无功。谢谢 !

标签: unity3dvuforia

解决方案


有时可以从 apk 中获取一些数据,例如您编写的脚本。这取决于你是如何编译你的apk的。如果您使用 IL2CPP,我会说它丢失了,但如果您使用 mono 作为脚本支持,您可以尝试反编译它。(如果您使用代码混淆等,则不会。)

为此,您将需要 apktool 和 dnspy 之类的程序。(也许也是 aapt)比你应该使用 apktool 来获取 dll。这是一个示例 apktool.bat,它将使用 apktool.jar 来获取 dll。

@echo off
if "%PATH_BASE%" == "" set PATH_BASE=%PATH%
set PATH=%CD%;%PATH_BASE%;
chcp 65001 2>nul >nul
java -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0\apktool.jar" %*

运行命令后

apktool d appname.apk

您应该导航到 appname\assets\bin\Data\Managed。

在此文件夹中,您将找到 Assembly-CSharp.dll 和 Assembly-CSharp-firstpass.dll。

您可以使用 dnSpy 打开 dll 并获取大部分代码。

但是,如果您是第一次这样做,这个过程可能会很复杂,所以慢慢来。如果您有任何进一步的问题,我可以尝试解释如何做到这一点。

你可以做的其他事情:(让你的脚本/甚至资产回来)

您可以尝试使用一些统一编辑器扩展,例如 Unity Unpacker。他们中的大多数是有偿的,通常不能很好地工作。

将来我建议使用某种版本控制。它使生活更轻松,您不必担心备份。此外,如果您需要恢复几天前的内容,只需单击几下即可。为此,您可以使用 Unity Teams、Github for Unity 或类似的东西。


推荐阅读