SingmyAaronLan
SingmyAaronLan
  • 发布:2023-10-28 07:54
  • 更新:2023-10-28 19:13
  • 阅读:1222

【报Bug】uni-app x下导入、使用云对象报错

分类:uni-app x

产品分类: 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/

示例代码:
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)  
})

操作步骤:
  1. 克隆项目:https://gitcode.net/AaBbCclqx2020/Uniappx/-/tree/master/
  2. 分别使用标准基座和自定义基座打包
  3. 运行测试

预期结果:

如上

实际结果:

如上报错信息

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/

2023-10-28 07:54 负责人:无 分享
已邀请:

要回复问题请先登录注册