一点背景知识:
- 使用子模块编译的 Android Studio 项目
- 从 .aar 包导入的模块
- 工作代码,刚刚从 Git 克隆出来。主应用程序按预期运行
模块中添加单行
Log.d("DemoModeManager", "这里发生了一些事情");
从导入的模块中,反编译的 .class 文件显示了应有的新代码行
在上述添加之前,第二个 Log 语句出现在 Logcat 中,并带有预期值。紧接着是新行,但在 Logcat 中从未见过(在终端和 Android Studio 中均检查)
这是一个更大问题的延伸,其中任何更改/添加都不会在 apk 中更新。
APK 作为特权应用程序安装在 system/priv-app 目录中。安装过程与我之前安装时一样。
安装方法(每次都有效) 重命名并解压 apk 文件 adb root adb remount 删除所有旧文件 adb push /app.debug.apk /system/priv-app adb push /app.debug/lib/arm64-v8a/* /system/lib64/app.debug
这让我相信有以下三件事正在发生:
- 软件问题导致 APK 以某种方式被覆盖
- 硬件问题,APK 从未从旧版本更新(尽管已从设备上完全删除)
- 与 APK 无关的硬件问题
一些尝试过的修复方法(无特定顺序):
- 重建项目
- 清洁项目
- 刷新链接的 C++
- 将项目与 gradle 文件同步
- 重新导入 gradle 项目
- 与文件系统同步
- 使缓存无效并重新启动
- 擦除并重新克隆 Git 项目
- 卸载并重新安装Android Studio
- 禁用即时运行
任何想法或方案若愿意尝试都将非常感激。
答案1
我能够解决这个问题。
模块和应用程序是两个独立的工作室项目。从模块文件夹创建了一个到主应用程序项目文件夹的软链接 (ln -sf)。
然后必须调整清单、build.gradle、settings.gradle 和 gradle.properties 文件以通过软链接构建模块,而不是为其提供 .aar 文件的本地路径。