【问题标题】:How to save objects (read only class) on android studio using java?如何使用java在android studio上保存对象(只读类)?
【发布时间】:2021-06-13 08:49:35
【问题描述】:

我打开项目:ML Kit Vision Quickstart。 https://github.com/googlesamples/mlkit/tree/master/android/vision-quickstart 在手机上构建和运行没有问题。我想使用共享首选项保存程序创建的对象,但是当我创建一个新对象时出现此错误:

('PoseLandmark(int, com.google.mlkit.vision.common.PointF3D, float)' 在“com.google.mlkit.vision.pose.PoseLandmark”中不公开。不能 可以从外部包访问)

这个类 PoseLandmark 是只读的。并且有 2 个可点击的链接“下载源”和“选择源”。当转到下载源时,任务失败并显示以下消息:

任务:app:DownloadSources FAILED 1 个可操作的任务:1 个已执行

FAILURE:构建失败并出现异常。

  • 在哪里: 初始化脚本'/tmp/ijmiscinit1.gradle'行:20

  • 出了什么问题:任务 ':app:DownloadSources' 执行失败。 无法解析配置“:app:downloadSources_0dad3cd2-2bde-4430-8d97-b0c59cc95ab3”的所有文件。 找不到 com.google.mlkit:pose-detection-common:17.1.0-beta2@aar。 要求: 项目:应用程序

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

  • 通过https://help.gradle.org获得更多帮助

BUILD FAILED in 5s 23:52:38: 任务执行完成 '下载资源'。

我尝试在 gradle.build 文件中更改此版本:

实现 'com.google.mlkit:pose-detection:17.0.1-beta3

到:

实现 'com.google.mlkit:pose-detection:17.0.1-beta2

但没用!

我已经尝试了很多事情:使缓存/重启无效,删除 .idea 和 .gradle 文件,再次导入项目,再次下载文件,安装新版本哦工作室...

有人对我如何保存这个对象有一些建议?

编辑: 对象在这里创建:

  @Override
  public void draw(Canvas canvas) {
    List<PoseLandmark> landmarks = pose.getAllPoseLandmarks();
    if (landmarks.isEmpty()) {
      return;
    }

并按顺序使用:

for (PoseLandmark landmark : landmarks) {
      drawPoint(canvas, landmark, whitePaint);
      if (visualizeZ && rescaleZForVisualization) {
        zMin = min(zMin, landmark.getPosition3D().getZ());
        zMax = max(zMax, landmark.getPosition3D().getZ());
      }
    }

也许可以解决。

【问题讨论】:

    标签: java android-studio gradle sharedpreferences google-mlkit


    【解决方案1】:

    我想用共享首选项保存程序创建的对象

    您能否提供有关如何保存对象的代码 sn-p?您要保存什么对象?您使用的是gson 库还是类似的库?

    PoseLandmark(int, com.google.mlkit.vision.common.PointF3D, float) 是 PoseLandmark 的构造函数。它不公开。这可能就是您无法访问它的原因。

    目前,您无法自行构造 Pose 对象。它不是 API 的一部分。作为解决方法,您是否可以考虑从 Pose 中提取您需要的信息并将它们存储在您定义的类中?

    【讨论】:

    • 感谢您的帮助。代码的其他部分需要这种类型的对象,但不认为可以保存他。
    猜你喜欢
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多