0

我是一名学生,目前正在为医院开发一款应用程序。我有一个旧版本的工作 .apk,但我一直在使用的源代码是较新的。

我的问题是,当我从较新的源构建 apk 并使用 winRar 或 apktool 查看内部时,没有“com”文件夹(并且其中有一个名为“iTextPDF”的文件夹)。旧的 apk 有这个文件夹。

在较新的代码/apk 中发生的情况是,当在应用程序中生成图表然后输出为 pdf 时,应用程序崩溃。错误是说文件不存在。

同样,它适用于旧的 apk,但我没有源代码。我认为代码没有太大变化。有什么帮助吗?

4

2 回答 2

1

1.尝试获取旧源代码

最好的办法是访问旧资源,但我猜如果可以的话,你会的。

2.尝试找出问题所在并解决它

我脑海中闪现的第一件事是应用程序具有不同的包 ID,您缺少“com.”。不过,这只是一个疯狂的猜测。鉴于每个应用程序都必须具有唯一的包名称,如果您不是从原始来源工作,那对我来说有点意义。

3. 你可以尝试对旧代码进行逆向工程......

看看APKToolDex2Jar & JD-GUIAndroGuard

APKTool 将让您将 APK 反汇编成“smali”代码。您可以查看并修改它,然后使用 APKTool 将其组装回 APK。

Dex2Jar 会将您的 APK 的 classes.dex 文件转换为 Jar,JD-GUI 会将 Jar 反编译为类似 Java 的代码。类似 Java 的代码可能不会编译回 APK

Androguard 是一个 RE 框架,非常强大,但使用起来有些困难。

可以在这里找到一个很好的开始重新编译 APK 的教程:So you want to reverse-engineer an Android app (apk)

于 2013-07-16T21:45:18.180 回答
0

我解决了这个问题......有点。我所做的是使用 Apk Manager 来反编译 apk。然后我添加了丢失的文件夹并重新编译。我签了字,我正在路上。

于 2013-07-17T12:49:49.520 回答