首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法将符号'FragmentCompat‘- Camera2VideoJava - Target解析为API 29

无法将符号'FragmentCompat‘- Camera2VideoJava - Target解析为API 29
EN

Stack Overflow用户
提问于 2019-12-30 17:37:18
回答 1查看 2.3K关注 0票数 5

我有一个一直在使用Camera2VideoJava的项目。我是升级到API 29 (AndroidX),但是现在Camera2VideoFragment.java文件获得了下面的错误

  1. 无法解析符号“v13”

对于这一行:import android.support.v13.app.FragmentCompat;

  1. 无法解析符号“FragmentCompat”

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

问题是android.support.v13不再导入到我的项目中,因为AndroidX处理了它。通过更新到API 29 & AndroidX,导入通常是由Android在其更改时自动建议的。

最初期望的解决方案:

导入(import android.support.v13.app.FragmentCompat;)通常会更改为类似于import androidx.core.app.FragmentCompat;androidx.legacy.app.FragmentCompat (如建议的这里)的内容,这将解决上述两个错误。然而,这两种进口都不存在。

势解?

我认为导入并不是建议的/不存在的,因为建议使用FragmentCompact被否决了,现在推荐片段,所以我当时唯一的想法是使用片段而不是FragmentCompact,但这将导致以下其他问题:

  • if (FragmentCompat.shouldShowRequestPermissionRationale(this, permission)) {
  • FragmentCompat.requestPermissions(this, VIDEO_PERMISSIONS, REQUEST_VIDEO_PERMISSIONS);
  • FragmentCompat.requestPermissions(parent, VIDEO_PERMISSIONS,REQUEST_VIDEO_PERMISSIONS);

因为Fragment没有这些方法。因此,我将不得不替换/重写这些功能,这..可能有用吗?但我并不怀疑我在这里是否走了很长的路,没有什么好的理由。

补充:

  • 我的理解是,这个解决方案不适用于本例,因为它将使用AndroidX创建重复导入

在更新到API 29时,是否有更好的解决FragmentCompat 问题的 Camera2VideoJava ??

EN

回答 1

Stack Overflow用户

发布于 2021-08-18 12:33:21

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

代码语言:javascript
运行
复制
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中添加:

代码语言:javascript
运行
复制
import androidx.legacy.app.FragmentCompat;

&

代码语言:javascript
运行
复制
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

将包名更改为fragment_camera2_video第20行中的包名。

代码语言:javascript
运行
复制
<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捕获

(您需要将ContextCompat更改为ActivityCompat)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59534731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档