【问题标题】:java.lang.NoSuchMethodError: No virtual method setUpdateMode while trying to render a Sceneform objectjava.lang.NoSuchMethodError:尝试渲染 Sceneform 对象时没有虚拟方法 setUpdateMode
【发布时间】:2020-03-29 03:55:45
【问题描述】:

我对增强现实很陌生,对 ARCore 也很陌生。我正在尝试渲染场景对象,但应用程序总是崩溃并出现此错误。

java.lang.NoSuchMethodError: No virtual method setUpdateMode(Lcom/google/ar/core/Config$UpdateMode;)V in class Lcom/google/ar/core/Config; or its super classes (declaration of 'com.google.ar.core.Config' appears in /data/app/com.example.firstar-73MXMhLuPjkwTp19W2ZiSQ==/base.apk)

这是我的代码:

public class MainActivity extends AppCompatActivity {

    ArFragment arfrag=new ArFragment();
    ModelRenderable andyRenderable;
    private static final double MIN_OPENGL_VERSION = 3.0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        arfrag = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.ARfrag);

        arfrag.setOnTapArPlaneListener(
                (HitResult hitResult, Plane plane, MotionEvent motionEvent) -> {
                    if (andyRenderable == null) {
                        return;
                    }
                    Anchor anchor = hitResult.createAnchor();
                    ModelRenderable.builder()
                            .setSource(this, Uri.parse("arfox.sfa"))
                            .build()
                            .thenAcceptAsync(renderable -> addObject(anchor, renderable))
                            .exceptionally(
                                    throwable -> {
                                        Toast toast =
                                                Toast.makeText(this, "Unable to load andy renderable", Toast.LENGTH_LONG);
                                        toast.setGravity(Gravity.CENTER, 0, 0);
                                        toast.show();
                                        return null;
                                    });

                    // Create the Anchor.


                });

    }

    private void addObject(Anchor anchor,ModelRenderable model) {

        AnchorNode anchorNode = new AnchorNode(anchor);
        TransformableNode andy = new TransformableNode(arfrag.getTransformationSystem());
        andy.setParent(anchorNode);

        andy.setRenderable(model);
        arfrag.getArSceneView().getScene().addChild(anchorNode);
        andy.select();


    }
}

我获得了所需的相机权限,并添加了 ARcore 和 Sceneform 工作所需的依赖项,当我运行应用程序时它崩溃了。很高兴知道此错误背后的原因。

谢谢。

【问题讨论】:

    标签: java android arcore sceneform


    【解决方案1】:

    检查您是否在 app build.gradle 中定义了以下选项:

    compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    

    【讨论】:

      猜你喜欢
      • 2020-10-28
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-20
      • 1970-01-01
      相关资源
      最近更新 更多