unity3d - Unity 和 Vuforia 项目丢失,我如何编辑 apk?
问题描述
我对 Unity 有一个大问题。一周前,我做了一个安卓应用,增强现实。我以 APK 格式编译了应用程序。在统一和 vuforia 中制作此应用程序一周后,在此期间我的硬盘坏了。
我的问题是,如何修改已经创建的 apk .. 因为我只创建了项目。我只有手机上留下的apk。
有没有可能?
我寻找结果..但徒劳无功。谢谢 !
解决方案
有时可以从 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 或类似的东西。
推荐阅读
- java - 没有空格的漂亮打印杰克逊 json?
- python - 如何在链接到共享点列表的 .accdb 文件上使用 pyodbc
- javascript - 有没有办法在方法参数中的解构元素上使用 Typescript 装饰器?
- hyperledger - Hyperledger composer-cli 未找到 gRPC 二进制文件
- html - 如何不让文字超过按钮?
- python - 替换字符串中的非 ASCII 字符
- reactjs - 如何重用组件逻辑
- javascript - 404 错误使用 xpage 上的传单添加标记
- asp.net-mvc-5.2 - List 类型的视图模型的自定义属性绑定成员
>> - python-3.x - 将 numpy.arange() 转换为 list 后值发生了变化