const example = uniCloud.importObject("example", {
customUI: true
})
console.error(example)
example.test('aaa').then<void>((result : UTSJSONObject) : void => {
console.error(result)
}).catch<void>((err : any | null) : void => {
const error = err as UniCloudError
console.error(error)
})
- 发布:2023-10-28 07:54
- 更新:2023-10-28 19:13
- 阅读:1222
产品分类: uni-app x/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 22621.1992
HBuilderX版本号: 3.94
手机系统: Android
手机系统版本号: Android 13
手机厂商: vivo
手机机型: Y77e
App下载地址或H5⽹址: https://gitcode.net/AaBbCclqx2020/Uniappx/-/tree/master/
示例代码:
操作步骤:
- 克隆项目:https://gitcode.net/AaBbCclqx2020/Uniappx/-/tree/master/
- 分别使用标准基座和自定义基座打包
- 运行测试
- 克隆项目:https://gitcode.net/AaBbCclqx2020/Uniappx/-/tree/master/
- 分别使用标准基座和自定义基座打包
- 运行测试
预期结果:
如上
如上
实际结果:
如上报错信息
如上报错信息
bug描述:
使用官方示例hello-uni-app-x项目,无论打自定义基座还是标准基座,云对象示例都正常运行,
在项目里导入、使用云对象,均出现不同情况报错
以下是出现报错的代码
const example = uniCloud.importObject("example", {
customUI: true
})
console.error(example)
example.test('aaa').then<void>((result : UTSJSONObject) : void => {
console.error(result)
}).catch<void>((err : any | null) : void => {
const error = err as UniCloudError
console.error(error)
})
以上云对象和其导入、使用的方法是参考hello-uni-app-x项目中的示例的
【标准基座】
刚开始,是直接用的标准基座进行真机运行调试,
在uni-app x项目下导入云对象成功
输出云对象方法,所有方法正常输出
{"test":"f () { [native code] } "} at pages/index/index.uvue:79
调用test方法,正常输出:
[Object] {"errCode":0,"errMsg":"This is a test text."}
【自定义基座】
因为插件需要导入第三方依赖,换成了自定义基座打包
在uni-app x项目下导入云对象成功
输出云对象方法,所有方法正常输出
{"test":"f () { [native code] } "} at pages/index/index.uvue:79
调用test方法后报错:java.lang.NoClassDefFoundError: Failed resolution of: Lio/dcloud/uniapp/extapi/UniStorageKt;
error: java.lang.NoClassDefFoundError: Failed resolution of: Lio/dcloud/uniapp/extapi/UniStorageKt;
at pages/index/index.uvue:80:4
})
console.error(example)
example.test('This is a test text.').then<void>((result : UTSJSONObject) : void => {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
console.error(result)
}).catch<void>((err : any | null) : void => {
开始以为是项目的其他原因(毕竟打包的hello-uni-app-x项目是正常运行的)
便按照模板,新建一个uni-app x项目,在index.uvue文件中使用同样代码,
标准基座
还是先用标准基座,结果符合预期,没有报错
[Object] {"errCode":0,"errMsg":"This is a test text."}
自定义基座
打包自定义基座后,运行后出现报错
07:11:57.263 java.lang.NoClassDefFoundError: Failed resolution of: Lio/dcloud/unicloud/UniCloudClientKt;
at uni.UNI5DF8C7C.IndexKt.<clinit>(index.kt:76)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at java.lang.Class.forName(Class.java:379)
at io.dcloud.uniapp.appframe.UniAppEngineHost.invokeAppMain$lambda$0(UniAppEngineHost.kt:93)
at io.dcloud.uniapp.appframe.UniAppEngineHost.$r8$lambda$B5PJVjjKP17XAQPUBDiJnlRXnaw(Unknown Source:0)
at io.dcloud.uniapp.appframe.UniAppEngineHost$$ExternalSyntheticLambda2.run(Unknown Source:8)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:223)
at android.os.Looper.loop(Looper.java:324)
at android.app.ActivityThread.main(ActivityThread.java:8599)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:582)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1061)
Caused by: java.lang.ClassNotFoundException: Didn't find class "io.dcloud.unicloud.UniCloudClientKt" on path: DexPathList[[dex file "/storage/emulated/0/Android/data/com.singmy.uniappxtest/apps/__UNI__5DF8C7C/www/index/classes.dex", dex file "/storage/emulated/0/Android/data/com.singmy.uniappxtest/apps/__UNI__5DF8C7C/www/pages/index/index/classes.dex", dex file "/storage/emulated/0/Android/data/com.singmy.uniappxtest/apps/__UNI__5DF8C7C/www/uniCloud/cloudfunctions/GenCloudObjUniCaptchaCo/classes.dex", dex file "/storage/emulated/0/Android/data/com.singmy.uniappxtest/apps/__UNI__5DF8C7C/www/uniCloud/cloudfunctions/GenCloudObjUniIdCo/classes.dex", dex file "/storage/emulated/0/Android/data/com.singmy.uniappxtest/apps/__UNI__5DF8C7C/www/uniCloud/cloudfunctions/GenCloudObjUniOpenBridge/classes.dex", dex file "/storage/emulated/0/Android/data/com.singmy.uniappxtest/apps/__UNI__5DF8C7C/www/uniCloud/cloudfunctions/GenCloudObjUniPushCo/classes.dex", zip file "/data/app/~~7gjQd4lcEle6o1zn4vFBqw==/com.singmy.uniappxtest-2_wSbsqCwnmw8X1LfYaYSQ==/base.apk"],nativeLibraryDirectories=[/data/app/~~7gjQd4lcEle6o1zn4vFBqw==/com.singmy.uniappxtest-2_wSbsqCwnmw8X1LfYaYSQ==/lib/arm64, /data/app/~~7gjQd4lcEle6o1zn4vFBqw==/com.singmy.uniappxtest-2_wSbsqCwnmw8X1LfYaYSQ==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 15 more
07:12:24.413 watch Error: EPERM: operation not permitted, watch
07:12:24.413 at FSEvent.FSWatcher._handle.onchange (node:internal/fs/watchers:204:21) {
07:12:24.413 errno: -4048,
07:12:24.413 syscall: 'watch',
07:12:24.413 code: 'EPERM',
07:12:24.413 filename: null
07:12:24.413 }
同类问题
使用uni.request API也会出现同样问题
出错代码段
onLoad() {
uni.request({
url: 'https://www.baidu.com',
method: 'GET',
header: {
"User-Agent": "Dalvik/2.1.0 (Linux; U; Android 9;)"
},
success(res) {
console.log('OUTPUT', res)
}
});
}
标准基座运行结果(正常输出)
OUTPUT, [Object] {"cookies":[],"data":"<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=cont...} at pages/index/index.uvue:35
自定义基座运行结果(报错)
error: java.lang.NoClassDefFoundError: Failed resolution of: Luts/sdk/modules/DCloudUniNetwork/RequestOptions;
at pages/index/index.uvue:28:3
| })
| */
| uni.request({
| ^^^^^^^^^^^^^
| url: 'https://www.baidu.com',
| method: 'GET',
以上这个测试项目已上传gitcode,
复现请按照以上步骤测试:https://gitcode.net/AaBbCclqx2020/Uniappx/-/tree/master/
0 个回复