安卓编译运行真机提示找不到依赖commons uni-app 本地依赖已经添加 也成功打包自定义基座

安卓编译运行真机提示找不到依赖commons uni-app 本地依赖已经添加 也成功打包自定义基座

项目属性 信息
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本 Windows10
HBuilderX类型 正式
HBuilderX版本 4.85
手机系统 Android
手机系统版本 Android 15
手机厂商 华为
手机机型 redmi k30 pro
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

import ApacheFTPClient from "org.apache.commons.net.ftp.FTPClient"
import ApacheFTPReply from "org.apache.commons.net.ftp.FTPReply"
import FileInputStream from "java.io.FileInputStream"
import File from "java.io.File"  

操作步骤:

  • 运行到手机或模拟器

预期结果:

  • 正常编译运行

实际结果:

  • 报错无法运行

bug描述:

09:01:54.586 找不到名称“commons”。参考: https://doc.dcloud.net.cn/uni-app-x/uts/compiler-known-issues.html#error18
09:01:54.586 at uni_modules/cloudMaster-ftp/utssdk/app-android/index.uts:2:28
09:01:54.586 1  |  
09:01:54.586 2  |  import ApacheFTPClient from "org.apache.commons.net.ftp.FTPClient"
09:01:54.586   |                              ^
09:01:54.586 3  |  import ApacheFTPReply from "org.apache.commons.net.ftp.FTPReply"  

Image


更多关于安卓编译运行真机提示找不到依赖commons uni-app 本地依赖已经添加 也成功打包自定义基座的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于安卓编译运行真机提示找不到依赖commons uni-app 本地依赖已经添加 也成功打包自定义基座的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个错误是因为在UTS环境中无法直接引用Java原生类库。UTS虽然支持调用Android原生API,但需要遵循特定的语法规范。

问题出现在import ApacheFTPClient from "org.apache.commons.net.ftp.FTPClient"这行代码。UTS中引用Android原生类应该使用以下方式:

// 正确的UTS导入方式
const ApacheFTPClient = UTSAndroid.import("org.apache.commons.net.ftp.FTPClient")
const ApacheFTPReply = UTSAndroid.import("org.apache.commons.net.ftp.FTPReply")
const FileInputStream = UTSAndroid.import("java.io.FileInputStream")
const File = UTSAndroid.import("java.io.File")

另外,需要确保在项目的nativeplugins配置中正确添加了Apache Commons Net依赖。在插件的package.json中应该包含:

{
  "dependencies": {
    "apache-commons-net": "版本号"
  }
}
回到顶部