Delphi 11.3 Android应用无法部署.so文件至TPath.GetDocumentsPath求助
Delphi 11.3 Android下TIdHTTP加载OpenSSL库失败及目录疑问解决
一、.so文件部署失败的排查与解决
- 修正部署目标路径:Delphi中部署OpenSSL的
.so文件时,目标路径应选择library目录(对应设备内部存储的/data/data/<包名>/lib),而非documents目录。你当前设置IdOpenSSLSetLibPath(TPath.GetDocumentsPath)指向的是应用内部存储的files目录,而.so文件默认需要部署到lib目录才能被系统正确加载。若执意要放在files目录,需额外配置文件权限,且OpenSSL加载逻辑可能存在路径限制,不推荐这么做。 - 核对
TimApp.deployproj部署项:确认.so文件的本地路径正确,目标路径设置为library\armeabi-v7a(或对应平板的CPU架构,如arm64-v8a),部署类型选择RemoteLibrary。 - 清理重建部署:删除项目下的
Android\Release或Android\Debug目录,重新编译并部署应用,避免旧部署缓存导致文件未更新。 - 匹配CPU架构:确保你部署的
.so文件与平板的CPU架构一致(如平板是arm架构,就用armeabi-v7a或arm64-v8a版本的OpenSSL库,不要用x86架构的文件)。
二、目录对应关系说明
P25_T_EEA/Android/data/com.embarcadero.TimApp/files 与 /data/user/0/com.embarcadero.TimApp/files 是不同的目录:
/data/user/0/com.embarcadero.TimApp/files:属于应用的内部私有存储目录,只有应用自身能访问,普通文件管理器需获取root权限才能查看。- P25_T_EEA/Android/data/com.embarcadero.TimApp/files:属于应用在外部存储的公共目录,无需root权限即可通过文件管理器查看,通常用于存储允许用户直接访问的文件。
内容的提问来源于stack exchange,提问作者user3140961
相关产品推荐
相关产品推荐

