java .lang.NoSuchMethodError: Нет виртуального метода setUpdateMode при попытке визуализации объекта Sceneform - PullRequest
0 голосов
/ 29 марта 2020

Я очень плохо знаком с дополненной реальностью и очень плохо знаком с 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, приложение вылетает, когда я запустить его. Было бы здорово узнать причину этой ошибки.

Спасибо.

1 Ответ

0 голосов
/ 29 марта 2020

Проверьте, есть ли у вас следующие параметры, определенные в приложении build.gradle:

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
...