Open edX Android应用配置后登录出现404接口错误求助
解决Open edX Android应用登录后出现的404 API错误
你已经完成了移动端的基础配置并成功登录,但遇到了API端点不存在的404错误。这个问题的核心是你的Open edX LMS实例并没有提供应用所请求的/api/mobile/v1/users/staff/course_enrollments接口,下面是具体的排查和解决步骤:
1. 确认版本兼容性
edx-app-android的API调用逻辑和Open edX LMS的版本强绑定,不同版本的LMS提供的API端点差异很大。你需要检查:
- 你拉取的edx-app-android代码分支(比如master或某个版本分支)是否和你的LMS版本匹配(比如Ironwood、Nutmeg、Olive等);
- 查看项目的README或RELEASE_NOTES里的版本兼容性说明,切换到匹配的分支重新配置编译。
2. 手动验证API端点是否存在
直接用工具测试这个API是否真的能访问:
- 从应用日志里找到当前登录用户的OAuth Access Token(或者通过LMS的OAuth流程手动获取);
- 用curl命令测试:
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://org.mylms.com/api/mobile/v1/users/staff/course_enrollments
如果返回404,说明你的LMS确实没有这个端点,要么升级LMS到支持该API的版本,要么检查LMS的配置是否禁用了相关API模块。
3. 检查LMS的API启用配置
有些Open edX版本需要手动启用移动端API:
- 打开LMS的
lms.env.json配置文件,检查FEATURES字段里的ENABLE_MOBILE_REST_API是否设置为true; - 登录LMS后台管理界面,确认有没有
MOBILE_API_ENABLED这类开关处于开启状态。
4. 确认API_HOST_URL配置的准确性
确保你在android.yaml里填的API_HOST_URL是LMS的正确根地址:
- 如果你的LMS部署在子路径下(比如
https://org.mylms.com/lms),一定要把这个完整路径填进去; - 可以先访问
https://org.mylms.com/api/mobile/v1/,如果返回API的根目录信息,说明地址是对的,否则需要调整。
5. 排除用户权限影响(优先级较低)
虽然错误是404而非403,但还是可以确认下当前登录用户的角色:
- 登录LMS后台,检查该用户是否拥有staff权限;
- 如果有条件,用一个staff账号登录应用,看是否还是同样的错误,排除权限导致的隐藏问题。
内容的提问来源于stack exchange,提问作者Rahul Rai
相关产品推荐
相关产品推荐

