You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含FAT AAR的Titanium Android模块打包体积过小及PermissionActivity类找不到问题求助

含FAT AAR的Titanium Android模块打包体积过小及PermissionActivity类找不到问题求助

看起来你在把带FAT AAR的原生Android模块转成Titanium模块时踩了好几个头疼的坑——打包出来的ZIP小得离谱,还死活找不到PermissionActivity,我来帮你一步步拆解排查:

1. 打包后ZIP仅103KB绝对不正常!问题出在依赖配置上

你用了compileOnly来引入AAR依赖,这就是核心问题!compileOnly是Gradle的「编译时仅依赖」模式:它只会在模块编译阶段提供AAR的类定义让代码不报错,但打包模块时会完全忽略AAR的所有内容——包括里面的内嵌AAR、.so文件、Activity类,最后出来的ZIP自然只有模块本身的空壳代码,体积小得可怜。

2. 如何确保AAR和.so文件被正确打包进模块?

直接修改模块的build.gradle依赖配置,把compileOnly换成implementation(或api,效果一致),这样Gradle会把AAR的所有内容(包括它内嵌的子AAR、jni目录下的.so文件)都打包到最终的模块ZIP里:

dependencies {
    implementation files('../../libs/FacialRecogntion_1.0.0.aar')
}

改完后一定要先清理旧构建产物,再重新打包:

ti clean
ti build -p android --build-only

打包完成后可以手动解压模块ZIP验证:里面应该能看到AAR相关内容,比如jniLibs目录下的各架构.so文件,或者模块资源里包含AAR的布局、Activity类字节码。

3. PermissionActivity标记为Launcher Activity会有影响吗?

在Titanium模块语境下,这个标记完全无效,也不会导致类找不到的问题。因为Titanium主应用的Launcher Activity由SDK本身管理,模块里的Activity不能设为Launcher,这个标记会被Titanium直接忽略。不过建议你把AAR Manifest里的这个标记去掉,避免不必要的配置混淆。

4. 解决「PermissionActivity类找不到」的关键补充步骤

除了修改依赖配置,还要做这两件事:

  • 在模块的AndroidManifest.xml里显式声明PermissionActivity:Titanium需要明确知道模块暴露了哪些原生组件,否则主应用找不到这个类:
<activity android:name="com.myApp.prod.PermissionActivity" />
  • 核对类路径拼写:报错里的com.myApp.prod.PermissionActivity要和AAR里实际的类路径完全一致,注意包名、类名的大小写——Windows文件名不敏感,但Java类路径是大小写敏感的,别在这里踩坑。

最后验证步骤

重新打包模块后,先解压ZIP确认里面包含AAR相关内容(比如libs下的AAR、jniLibs下的.so),再导入主Titanium项目运行,应该就能解决类找不到的问题了。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 11:00:26