【发布时间】: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