gpt4 book ai didi

java - 无法解析符号 'FragmentCompat' - Camera2VideoJava - 目标为 API 29

转载 作者:行者123 更新时间:2023-12-04 11:41:07 28 4
gpt4 key购买 nike

我有一个项目一直在使用 Camera2VideoJava .我是升级到 API 29 (AndroidX) 但现在 Camera2VideoFragment.java file获取 以下错误 :

  • Cannot resolve symbol 'v13'



    对于这一行:import android.support.v13.app.FragmentCompat;
  • Cannot resolve symbol 'FragmentCompat'



    对于这一行:implements View.OnClickListener, FragmentCompat.OnRequestPermissionsResultCallback, MediaRecorder.OnInfoListener {

  • 问题是 android.support.v13由于 AndroidX 处理它,因此不再导入到我的项目中。随着更新到 API 29 和 AndroidX,Android Studio 通常会在更改时自动建议导入。

    最初预期的解决方案:

    导入 ( import android.support.v13.app.FragmentCompat; ) 通常会更改为 import androidx.core.app.FragmentCompat;androidx.legacy.app.FragmentCompat (如建议的 here ),这将解决上述两个错误。但是,两个导入都不存在。

    潜在的解决方案?

    我相信不建议/不存在导入,因为 FragmentCompact was deprecated现在 Fragment推荐,所以我唯一的想法是使用 Fragment 而不是 FragmentCompact,但这会产生其他问题:
  • if (FragmentCompat.shouldShowRequestPermissionRationale(this, permission)) {
  • FragmentCompat.requestPermissions(this, VIDEO_PERMISSIONS, REQUEST_VIDEO_PERMISSIONS);
  • FragmentCompat.requestPermissions(parent, VIDEO_PERMISSIONS,REQUEST_VIDEO_PERMISSIONS);

  • 自从 Fragment没有那些方法。那么我将不得不替换/重写那些功能,这可能有用吗?但我不会质疑我是否在这里无缘无故地走了很长一段路。

    额外的:
  • 我的理解是this solution在这种情况下不适用,因为它将使用 AndroidX 创建重复导入


  • 有没有更好的解决方案来解决 FragmentCompat Camera2VideoJava 的问题更新到 API 29 时?

    最佳答案

    对我有用的最简单和最快的方法:
    将 build.gradle 中的所有引用更改为:

    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.legacy:legacy-support-v13:1.0.0'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.appcompat:appcompat:1.3.1'
    在 Camera2VideoFragment 添加:
    import androidx.legacy.app.FragmentCompat;
    &
    import androidx.annotation.NonNull;
    import androidx.annotation.Nullable;
    在 fragment_camera2_video 的第 20 行将包名称更改为 mine。
    <com.yyyy.xxxx.AutoFitTextureView
    android:id="@+id/texture"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true" />
    就是这样 - 像魔术一样工作
    顺便说一句 - 如果您正在寻找相机应用程序模板,我发现以下内容要好得多。
    它演示了 camera2API、权限和视频捕获。还可以让您在录制的同时进行图像捕捉。
    关联
    Camera2Video+image capture
    (您需要将 ContextCompat 更改为 ActivityCompat)

    关于java - 无法解析符号 'FragmentCompat' - Camera2VideoJava - 目标为 API 29,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59534731/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com