技术人员好,我现在在用uniapp做混合开发的时候用到leancloud,
生成小程序的时候是没有什么问题的
但是真机运行生成安卓APP时总是上传不上去图片
数据库里回有生成图片的记录
但是打开图片的url地址就是显示 document not found
我自己感觉可能是SDK的问题 但是我实在不太清楚应该安装哪个SDK
可以回复一下吗 谢谢啦

您好,对于 android app,需要在 manifest 中声明如下的权限:

<!-- 基础模块(必须加入以下声明)START -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 基础模块 END -->

您可以先检查一下权限。文件见这里:https://leancloud.cn/docs/start.html

这个权限我都已经加上了

那你打开 debug 日志,运行一遍上传流程,把 SDK 打印的日志全部都贴上来吧。
开启调试日志的方法:

// 放在 SDK 初始化语句 AVOSCloud.initialize() 后面,只需要调用一次即可
AVOSCloud.setDebugLogEnabled(true);

不是这一个权限,是上面列出来的所有权限。

我刚才没说全 你发出来的那些权限我都已经加上了

把这句话放在哪个文件里啊 我找了半天没找到

当我生成安卓app的时候还可以和小程序使用同一个sdk吗 就这个 av-weapp-min.js 文件


这个是其中一个图片的url
图片的objectId是 5c207a6a7f6fd3005d2e1169

android app 需要依赖 android sdk,小程序使用的那个 js sdk 是不可用的。

你好,对于 sdk 该怎么依赖,我们内部先确认一下。

av-weapp-min.js 这个是小程序专用的,在 Android 上会因为没有小程序的 API 而报错。

建议使用 npm 来安装 SDK: https://uniapp.dcloud.io/frame?id=npm%E6%94%AF%E6%8C%8122

我们发布在 npm 上的 SDK 是支持在不同的环境下使用不同的文件的(比如按照 uniapp 的设计应该加载浏览器版本的文件)。像 mpvue 这类遵循这一约定的框架就会自动选择对应的文件加载,如果 uniapp 遵循这一约定的话也能正常工作。

我是真机运行啊 这个不是浏览器打印吗 写上localStorage.setItem('debug', 'leancloud*,LC*'); 这句代码会报错

 AV.Object#fetchWhenSave is deprecated, use AV.Object#save with options.fetchWhenSave instead . at common/av-weapp-min.js:30

这个是安卓上传图片是返回的最新的错误信息
拜托帮我看一下 谢谢谢谢

13:08:52.259 项目 'baoma-app' 开始编译...
13:08:58.556 [提示] 如编译时间较长,请注意将本工程目录从杀毒软件、搜索索引软件的监控名单移除。
13:09:06.695 8082端口被占用,开启新端口8083
13:10:08.929 文件查找失败:'fs' at node_modules\superagent\lib\node\index.js:7
13:10:08.931 文件查找失败:'fs' at node_modules\superagent\lib\node\index.js:2
13:10:08.939 文件查找失败:'fs' at node_modules\leancloud-storage\dist\node\uploader\s3.js:22

这个是npm js SDK后报的错误

看起来是 uniapp 并没有加载到正确的浏览器版本代码(加载了 node 版本的)。

建议联系 uniapp 的技术支持,可以向他们反馈:

uniapp 作为跨平台的开发框架,没有遵循 https://github.com/defunctzombie/package-browser-field-spec27 合适的处理 package.json 中的 browser 字段,导致使用这个 package 的时候引入的文件错误: https://github.com/leancloud/javascript-sdk/blob/master/package.json#L77-L8323