我是一名正在为医院开发应用程序的学生。我有一个工作.apk的旧版本,但我一直在使用的源代码更新。
我的问题是,当我从较新的源码构建apk并使用winRar或apktool查看内部时,没有“com”文件夹(并且在其中有一个名为“iTextPDF”的文件夹)。旧的apk有这个文件夹。
在较新的代码/ apk中发生的事情是,当在应用程序中生成图形然后输出到pdf时,应用程序崩溃。错误是说文件不存在。
同样,它适用于旧的apk但我没有源。我不认为代码中有太多变化。有帮助吗?
答案 0 :(得分:1)
<强> 1。尝试获取旧的源代码
最好的办法是访问旧的来源,但我猜你会这样做。
<强> 2。试着弄清问题是什么并解决它
首先出现在我的脑海中的是应用程序具有不同的软件包ID,您缺少“com。”。不过,这只是一个疯狂的猜测。鉴于每个应用程序必须具有唯一的包名称,如果您不使用原始来源,这对我来说有点意义。
第3。您可以尝试对旧代码进行反向工程....
查看APKTool,Dex2Jar&amp; JD-GUI和AndroGuard。
APKTool会让你将APK反汇编成“smali”代码。您可以查看并修改它并使用APKTool将其组合回APK。
Dex2Jar会将您的APK的classes.dex文件转换为Jar,JD-GUI会将Jar反编译成类似Java的代码。类似Java的代码可能无法编译回到APK
Androguard是一个RE框架,非常强大,但有些难以使用。
可以在此处找到一个很好的入门RE-ing APK教程:So you want to reverse-engineer an Android app (apk)
答案 1 :(得分:0)
我解决了这个问题......有点儿。我所做的是使用Apk Manager来反编译apk。然后我添加了丢失的文件夹并重新编译。我签了名,我正在路上。