【问题标题】:getSupportFragmentManager() is not accessible无法访问 getSupportFragmentManager()
【发布时间】:2020-08-23 16:40:03
【问题描述】:

我正在创建一个基本示例并遇到这 2 个错误。

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.net.Uri;
import android.view.Gravity;
import android.view.MotionEvent;
import android.widget.ImageButton;
import android.widget.Toast;
import com.google.ar.core.Anchor;
import com.google.ar.core.HitResult;
import com.google.ar.core.Plane;
import com.google.ar.sceneform.AnchorNode;
import com.google.ar.sceneform.rendering.ModelRenderable;
import com.google.ar.sceneform.ux.ArFragment;
import com.google.ar.sceneform.ux.BaseArFragment;
import com.google.ar.sceneform.ux.TransformableNode;
import com.google.ar.sceneform.math.Quaternion;
import com.google.ar.sceneform.math.Vector3;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    private ArFragment arFragment;
    private ModelRenderable modelRenderable;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.fragment);

遇到错误:

Inconvertible types; cannot cast 'androidx.fragment.app.Fragment' to 'com.google.ar.sceneform.ux.ArFragment'

我已经添加了片段的导入?

  1. 在构建过程中也会出现此错误。

    sceneformsrc\sceneform\src\main\java\com\google\ar\sceneform\AnchorNode.java:3: 错误: android.support.annotation 包不存在 导入android.support.annotation.Nullable;

我错过了一些我收到这些错误的东西?

我正在使用 Sceneform 1.16 和 Andriod studio 4.1

【问题讨论】:

    标签: android arcore sceneform


    【解决方案1】:
    <fragment
            android:id="@+id/face_fragment"
            android:name="com.google.ar.sceneform.ux.ArFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    

    你提到过 android:name 标签吗?

    【讨论】:

      【解决方案2】:

      首先交叉检查片段名称,确保片段名称为com.google.ar.sceneform.ux.ArFragment

      <fragment
          android:id="@+id/fragment"
          android:name="com.google.ar.sceneform.ux.ArFragment"
          android:layout_width="match_parent"
          android:layout_height="match_parent" />
      

      如果正确,则为onCreate 方法添加SuppressWarnings 注释。

      public class MainActivity extends AppCompatActivity {
      
          private ArFragment arFragment;
          private ModelRenderable modelRenderable;
      
          @Override
          @SuppressWarnings({"AndroidApiChecker", "FutureReturnValueIgnored"})
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
      
              arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.fragment);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-28
        • 2016-03-30
        • 2022-11-24
        • 1970-01-01
        • 2013-12-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多