SceneView / sceneform-android

Sceneform Maintained is an ARCore Android SDK with Google Filament as 3D engine. This is the continuation of the archived Sceneform
https://sceneview.github.io/sceneform-android/
Apache License 2.0
633 stars 146 forks source link

Your library doesn't work #123

Closed ghost closed 3 years ago

ghost commented 3 years ago

I am getting the following error:

E/ARCore-LocationProvider: Exception during latest FLP api client construction. Falling back to legacy: com.google.android.gms.location.FusedLocationProviderClient.requestLocationUpdates [class com.google.android.gms.location.LocationRequest, interface com.google.android.gms.location.LocationListener]
    java.lang.NoSuchMethodException: com.google.android.gms.location.FusedLocationProviderClient.requestLocationUpdates [class com.google.android.gms.location.LocationRequest, interface com.google.android.gms.location.LocationListener]
        at java.lang.Class.getMethod(Class.java:2072)
        at java.lang.Class.getMethod(Class.java:1693)
        at com.google.ar.core.services.LocationProvider.setupFusedLocationProviderClientApi(PG:4)
        at com.google.ar.core.services.LocationProvider.setupFusedLocationProviderApi(PG:9)
        at com.google.ar.core.services.LocationProvider.<init>(PG:7)
        at com.google.ar.core.Session.nativeCreateSessionAndWrapperWithFeatures(Native Method)
        at com.google.ar.core.Session.<init>(Session.java:11)
        at com.google.ar.sceneform.ux.BaseArFragment.createSessionWithFeatures(BaseArFragment.java:521)
        at com.google.ar.sceneform.ux.BaseArFragment.createSession(BaseArFragment.java:505)
        at com.google.ar.sceneform.ux.BaseArFragment.initializeSession(BaseArFragment.java:468)
        at com.google.ar.sceneform.ux.BaseArFragment.onResume(BaseArFragment.java:428)
        at androidx.fragment.app.Fragment.performResume(Fragment.java:3039)
        at androidx.fragment.app.FragmentStateManager.resume(FragmentStateManager.java:607)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:306)
        at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1647)
        at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3128)
        at androidx.fragment.app.FragmentManager.dispatchResume(FragmentManager.java:3086)
        at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:273)
        at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:458)
        at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:447)
        at androidx.appcompat.app.AppCompatActivity.onPostResume(AppCompatActivity.java:240)
        at android.app.Activity.performResume(Activity.java:8154)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4428)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4470)
        at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7664)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

never had this problem with the official sceneform sdk

ghost commented 3 years ago

Full log

07/17 16:25:53: Launching 'app' on Google Pixel 3a XL.
Install successfully finished in 181 ms.
$ adb shell am start -n "com.memex.eu/com.unamedia.aworld.MenuActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 8873 on device 'google-pixel_3a_xl-975AX0HDAK'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
I/chatty: uid=10334(com.memex.eu) re-initialized> identical 1 line
W/com.memex.eu: Accessing hidden method Landroid/content/res/ResourcesKey;-><init>(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;[Landroid/content/res/loader/ResourcesLoader;)V (blacklist, linking, denied)
    Accessing hidden method Landroid/app/ResourcesManager;->invalidatePath(Ljava/lang/String;)V (greylist-max-o, linking, denied)
    Accessing hidden method Landroid/content/res/ResourcesKey;->isPathReferenced(Ljava/lang/String;)Z (greylist-max-o, linking, denied)
    Accessing hidden field Landroid/app/ResourcesManager;->mCachedApkAssets:Landroid/util/ArrayMap; (greylist-max-o, linking, denied)
    Accessing hidden field Landroid/app/ResourcesManager;->mCachedApkAssets:Landroid/util/ArrayMap; (greylist-max-o, linking, denied)
    Accessing hidden field Landroid/app/ResourcesManager$ApkKey;->path:Ljava/lang/String; (greylist-max-o, linking, denied)
    Accessing hidden field Landroid/app/ResourcesManager;->mCachedApkAssets:Landroid/util/ArrayMap; (greylist-max-o, linking, denied)
    Accessing hidden method Landroid/content/res/ApkAssets;->close()V (blacklist, linking, denied)
    Accessing hidden field Landroid/app/ResourcesManager;->mCachedApkAssets:Landroid/util/ArrayMap; (greylist-max-o, linking, denied)
    Accessing hidden field Landroid/app/ResourcesManager$ApkKey;->path:Ljava/lang/String; (greylist-max-o, linking, denied)
    Accessing hidden field Landroid/app/ResourcesManager;->mCachedApkAssets:Landroid/util/ArrayMap; (greylist-max-o, linking, denied)
    Accessing hidden method Landroid/content/res/ApkAssets;->close()V (blacklist, linking, denied)
    Accessing hidden method Landroid/app/ResourcesManager;->isSameResourcesOverrideConfig(Landroid/os/IBinder;Landroid/content/res/Configuration;)Z (greylist-max-o, linking, denied)
    Accessing hidden field Landroid/app/ResourcesManager$ActivityResources;->overrideConfig:Landroid/content/res/Configuration; (greylist-max-o, linking, denied)
I/chatty: uid=10334(com.memex.eu) re-initialized> identical 1 line
W/com.memex.eu: Accessing hidden field Landroid/app/ResourcesManager$ActivityResources;->overrideConfig:Landroid/content/res/Configuration; (greylist-max-o, linking, denied)
    Accessing hidden method Landroid/content/res/Configuration;->diffPublicOnly(Landroid/content/res/Configuration;)I (greylist-max-o, linking, denied)
    Accessing hidden method Landroid/app/ResourcesManager;->overrideTokenDisplayAdjustments(Landroid/os/IBinder;Ljava/util/function/Consumer;)Z (blacklist, linking, denied)
    Accessing hidden field Landroid/app/ResourcesManager$ActivityResources;->activityResources:Ljava/util/ArrayList; (greylist-max-o, linking, denied)
W/com.memex.eu: Accessing hidden method Landroid/content/res/Resources;->overrideDisplayAdjustments(Ljava/util/function/Consumer;)V (blacklist, linking, denied)
    Accessing hidden method Landroid/app/ResourcesManager;->updateResourcesForActivity(Landroid/os/IBinder;Landroid/content/res/Configuration;IZ)V (greylist-max-o, linking, denied)
    Accessing hidden method Landroid/app/ResourcesManager;->getOrCreateActivityResourcesStructLocked(Landroid/os/IBinder;)Landroid/app/ResourcesManager$ActivityResources; (greylist-max-o, linking, denied)
    Redefining intrinsic method java.lang.Thread java.lang.Thread.currentThread(). This may cause the unexpected use of the original definition of java.lang.Thread java.lang.Thread.currentThread()in methods that have already been compiled.
    Redefining intrinsic method boolean java.lang.Thread.interrupted(). This may cause the unexpected use of the original definition of boolean java.lang.Thread.interrupted()in methods that have already been compiled.
I/studio.deploy: Finished instrumenting
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
    No Network Security Config specified, using platform default
I/FirebaseApp: Device unlocked: initializing all Firebase APIs for app [DEFAULT]
I/FirebaseCrashlytics: Initializing Firebase Crashlytics 18.0.0 for com.memex.eu
I/DynamiteModule: Considering local module com.google.android.gms.measurement.dynamite:51 and remote module com.google.android.gms.measurement.dynamite:51
    Selected remote version of com.google.android.gms.measurement.dynamite, version >= 51
V/DynamiteModule: Dynamite loader version >= 2, using loadModule2NoCrashUtils
I/FirebaseInitProvider: FirebaseApp initialization successful
V/FA: App measurement collection enabled
    App measurement enabled for app package, google app id: com.memex.eu, 1:357554206788:android:9a5309643b02599659a411
I/FA: App measurement initialized, version: 42041
    To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
    To enable faster debug mode event logging run:
      adb shell setprop debug.firebase.analytics.app com.memex.eu
D/FA: Debug-level message logging enabled
V/FA: onActivityCreated
V/FA: Connecting to remote service
V/FA: Connection attempt already in progress
V/FA: Connection attempt already in progress
W/com.memex.eu: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
W/com.memex.eu: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
V/FA: Activity resumed, time: 419462046
I/FA: Tag Manager is not found and thus will not be used
V/FA: Connection attempt already in progress
V/FA: Connection attempt already in progress
I/AdrenoGLES-0: QUALCOMM build                   : 781e7d0, I46ff5fc46f
    Build Date                       : 12/01/20
    OpenGL ES Shader Compiler Version: EV031.31.04.01
    Local Branch                     : QPR1
    Remote Branch                    : 
    Remote Branch                    : 
    Reconstruct Branch               : 
    Build Config                     : C P 11.0.1 AArch64
    Driver Path                      : /vendor/lib64/egl/libGLESv2_adreno.so
I/AdrenoGLES-0: PFP: 0x016ee189, ME: 0x00000000
W/AdrenoUtils: <ReadGpuID_from_sysfs:197>: Failed to open /sys/class/kgsl/kgsl-3d0/gpu_model
    <ReadGpuID:221>: Failed to read chip ID from gpu_model. Fallback to use the GSL path
I/Gralloc4: mapper 4.x is not supported
W/Gralloc3: mapper 3.x is not supported
D/FA: Connected to remote service
V/FA: Processing queued up service tasks: 5
W/System: A resource failed to call close. 
V/FA: Recording user engagement, ms: 1558
V/FA: Activity paused, time: 419463605
V/FA: onActivityCreated
I/CameraManagerGlobal: Connecting to camera service
W/com.memex.eu: Accessing hidden method Landroid/renderscript/RenderScript;->getMinorID()J (greylist, reflection, allowed)
    Accessing hidden method Ldalvik/system/VMRuntime;->registerNativeAllocation(I)V (greylist,core-platform-api, reflection, allowed)
    Accessing hidden method Ldalvik/system/VMRuntime;->registerNativeFree(I)V (greylist,core-platform-api, reflection, allowed)
V/RenderScript_jni: RS native mode
V/RenderScript_jni: Unable to load libRSSupportIO.so, USAGE_IO not supported
V/RenderScript_jni: Unable to load BLAS lib, ONLY BNNM will be supported: java.lang.UnsatisfiedLinkError: dlopen failed: library "libblasV8.so" not found
D/RenderScript HIDL Adaptation: IRenderScriptDevice::getService()
D/RenderScript HIDL Adaptation: IRenderScriptDevice::getService() returned 0x6e8bd6c3f0
    HIDL successfully loaded.
E/libc: Access denied finding property "vendor.debug.rs.verbose"
E/libc: Access denied finding property "vendor.debug.rs.nointrinsicblur"
    Access denied finding property "vendor.debug.rs.nointrinsicblas"
    Access denied finding property "vendor.debug.rs.noperfhint"
    Access denied finding property "vendor.debug.rs.dump_setup"
    Access denied finding property "vendor.debug.rs.noprofile"
    Access denied finding property "vendor.debug.rs.dump_bitcode"
    Access denied finding property "vendor.debug.rs.force_finish"
E/libc: Access denied finding property "vendor.debug.rs.disable_expand"
    Access denied finding property "vendor.debug.rs.use_fast_math"
    Access denied finding property "vendor.debug.rs.blurimpl"
    Access denied finding property "vendor.debug.rs.noobjcache"
E/libc: Access denied finding property "vendor.debug.rs.notextures"
V/RenderScript: Successfully loaded runtime: libRSDriver_adreno.so
W/com.memex.eu: Accessing hidden field Landroid/renderscript/RenderScriptCacheDir;->mCacheDir:Ljava/io/File; (greylist, JNI, allowed)
D/com.memex.eu: Successfully queried cache dir: /data/user_de/0/com.memex.eu/code_cache
D/RenderScript: Setting cache dir: /data/user_de/0/com.memex.eu/code_cache
I/Filament: FEngine (64 bits) created at 0x6d80b21040 (threading is enabled)
D/Filament: Using ASurfaceTexture
    FEngine resolved backend: OpenGL
V/FA: Activity resumed, time: 419463896
I/third_party/arcore/ar/core/android/sdk/session_create.cc: Entering ArSession_createWithFeaturesAndTrace
    ARCore Version: SDK build name: 1.25
I/third_party/arcore/ar/core/android/sdk/session_create.cc: ARCore Version: APK version code: 211460203
I/third_party/arcore/ar/core/android/sdk/session_create.cc: Dynamite load ok.
I/third_party/arcore/java/com/google/vr/dynamite/client/native/dynamite_client.cc: Attempting to load native library arcore_c from package com.google.ar.core
I/third_party/arcore/java/com/google/vr/dynamite/client/native/dynamite_client.cc: Dynamite::LoadNativeRemoteLibrary handle=6149052966774778743
I/third_party/arcore/ar/core/android/sdk/session_create.cc: ARCore SDK: dynamite number_of_symbols_loaded=243
I/native: I0717 16:25:56.824927    8873 session_create_implementation.cc:238] Entering createImplementationWithFeaturesAndSettings. ARCore SDK version: [1.25.210910000].
I/native: I0717 16:25:56.842122    8873 session_create_implementation.cc:202] AugmentedRegion downsample mode from Phenotype: true
V/third_party/redwood/infrastructure/jni_common/jni_helper.cc: JniHelper: attached thread (Called from line 365).
I/native: I0717 16:25:56.856034    8873 session_create_implementation_shared.cc:1879] min_apk_version_code is: 210910000, phenotype flag of enable_dual_camera_support is: false, phenotype flag of unified_data_source_status is: 1, phenotype flag of unified_shared_cameras_status is: 1, is_dual_camera_supported based on device profile is: false
    I0717 16:25:56.856124    8873 session_create_implementation_shared.cc:1892] Settings.camera_stack_option is not specified
    I0717 16:25:56.856138    8873 session_create_implementation_shared.cc:1977] Datasource will be created with camera_stack_option = kNdk
    I0717 16:25:56.856243    8873 session_create_implementation_shared.cc:2068] Persistent online recalibration is enabled by Phenotype.
I/tflite: Initialized TensorFlow Lite runtime.
I/native: I0717 16:25:56.859212    8873 online_calibration_manager.cc:91] OnlineCalibrationManager: Could not open /data/user/0/com.memex.eu/cache/arcore-online-recalibration for reading.
W/ARCore-ContextUtils: The API key for use with the Google AR service could not be obtained!
E/ARCore-LocationProvider: Exception during latest FLP api client construction. Falling back to legacy: com.google.android.gms.location.FusedLocationProviderClient.requestLocationUpdates [class com.google.android.gms.location.LocationRequest, interface com.google.android.gms.location.LocationListener]
    java.lang.NoSuchMethodException: com.google.android.gms.location.FusedLocationProviderClient.requestLocationUpdates [class com.google.android.gms.location.LocationRequest, interface com.google.android.gms.location.LocationListener]
        at java.lang.Class.getMethod(Class.java:2072)
        at java.lang.Class.getMethod(Class.java:1693)
        at com.google.ar.core.services.LocationProvider.setupFusedLocationProviderClientApi(PG:4)
        at com.google.ar.core.services.LocationProvider.setupFusedLocationProviderApi(PG:9)
        at com.google.ar.core.services.LocationProvider.<init>(PG:7)
        at com.google.ar.core.Session.nativeCreateSessionAndWrapperWithFeatures(Native Method)
        at com.google.ar.core.Session.<init>(Session.java:11)
        at com.google.ar.sceneform.ux.BaseArFragment.createSessionWithFeatures(BaseArFragment.java:521)
        at com.google.ar.sceneform.ux.BaseArFragment.createSession(BaseArFragment.java:505)
        at com.google.ar.sceneform.ux.BaseArFragment.initializeSession(BaseArFragment.java:468)
        at com.google.ar.sceneform.ux.BaseArFragment.onResume(BaseArFragment.java:428)
        at androidx.fragment.app.Fragment.performResume(Fragment.java:3039)
        at androidx.fragment.app.FragmentStateManager.resume(FragmentStateManager.java:607)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:306)
        at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1647)
        at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3128)
        at androidx.fragment.app.FragmentManager.dispatchResume(FragmentManager.java:3086)
        at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:273)
        at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:458)
        at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:447)
        at androidx.appcompat.app.AppCompatActivity.onPostResume(AppCompatActivity.java:240)
        at android.app.Activity.performResume(Activity.java:8154)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4428)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4470)
        at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7664)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
I/native: I0717 16:25:56.911657    8873 session_create_implementation_shared.cc:844] Datasource will be created with timeout = 4s, should_wait = false, should_use_greedy_recovery = true
    I0717 16:25:56.911758    8873 android_camera.cc:169] Camera start operation timeout set to 4000 ms.
    I0717 16:25:56.911810    8873 android_camera.cc:1827] Initializing camera manager.
I/native: I0717 16:25:56.915995    8873 android_camera.cc:1853] Camera manager initialized successfully with 2 cameras.
    I0717 16:25:56.916669    8873 imagereader_ndk_wrapper.cc:47] Loading Android NDK 26 symbols from libmediandk.so
I/native: I0717 16:25:56.917204    8873 imagereader_ndk_wrapper.cc:70] Successfully loaded Android NDK 26 libmediandk.so symbols.
    I0717 16:25:56.917242    8873 cameras.cc:123] Number of hardware buffers is 16. sdk_version=30, is_hardware_buffer_supported=true
I/native: I0717 16:25:56.918814    8873 android_sensors.cc:107] Using uncalibrated accelerometer.
    I0717 16:25:56.918935    8873 android_sensors.cc:135] Found IMU temperature sensor.
I/native: I0717 16:25:56.919098    8873 android_sensors.cc:146] Uncalibrated magnetometer available.
    I0717 16:25:56.919196    8873 android_sensors.cc:150] Calibrated magnetometer available.
    I0717 16:25:56.919297    8873 android_sensors.cc:163] Using SENSOR_TYPE_LIGHT
    I0717 16:25:56.919385    8873 android_sensors.cc:163] Using SENSOR_TYPE_PRESSURE
    I0717 16:25:56.919513    8873 android_sensors.cc:163] Using SENSOR_TYPE_PROXIMITY
    I0717 16:25:56.919615    8873 android_sensors.cc:163] Using SENSOR_TYPE_GRAVITY
    I0717 16:25:56.919707    8873 android_sensors.cc:163] Using SENSOR_TYPE_ROTATION_VECTOR
    I0717 16:25:56.919817    8873 android_sensors.cc:163] Using SENSOR_TYPE_GAME_ROTATION_VECTOR
    I0717 16:25:56.919916    8873 android_sensors.cc:163] Using SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR
I/native: I0717 16:25:56.920001    8873 android_sensors.cc:163] Using SENSOR_TYPE_STEP_DETECTOR
I/native: I0717 16:25:56.921453    8873 android_platform_checks.cc:196] IsZeroRotationLandscape = false
I/native: I0717 16:25:56.922645    8873 app_version_util.cc:50] Package name: com.google.ar.core App version: 1.25.211460203
    I0717 16:25:56.922853    8873 logger.h:28] DataSourceMetrics: CamerasInit: 32.604us
    I0717 16:25:56.922881    8873 session_create_implementation_shared.cc:1166] CPU Image enable frame delay to compensate delay: false
I/native: I0717 16:25:56.935648    8873 config_helpers.cc:396] Legacy IMU sigma values are used
    I0717 16:25:56.935742    8873 config_helpers.cc:349] Failed to find IMU intrinsic covariance matrix in profile for id: 100
    I0717 16:25:56.935766    8873 config_helpers.cc:107] Does not find camera intrinsic covariance matrix in profile for id 0
    I0717 16:25:56.935779    8873 config_helpers.cc:180] Does not find extrinsic covariance matrix in profile for IMU id 100
I/native: I0717 16:25:56.937649    8873 feature_matcher_and_filter.cc:92] Enabled the robustification to large-sized and fast-moving objects on this mono-camera device.
I/native: I0717 16:25:56.939661    8873 pose_confidence_estimator.cc:231] Pose confidence model loaded successfully
I/native: I0717 16:25:57.099500    8873 asset_manager_util.cc:59] Created global reference to asset manager.
    I0717 16:25:57.099587    8873 session_create_implementation_shared.cc:1194] Normal detector created.
I/native: I0717 16:25:57.105718    8873 planar_target_tracking_manager.h:116] Config of PlanarTargetTrackingManager:
    -pose_refinement_with_detection_interval_ns: 0
    -min_interval_between_detections_ns: 500000000
    -filter_parallax: false
    -filter_result: true
    -multiple_targets: true
    -mini_detection: true
    -tracking_mode: 1
    -camera_id: 0
I/native: I0717 16:25:57.111461    8873 camera_config_manager.cc:719] UpdateBugFixes on CameraConfigManager is unimplemented!
W/com.memex.eu: Accessing hidden method Landroid/media/Image;-><init>()V (greylist, linking, allowed)
I/third_party/arcore/ar/core/android/sdk/arimage_jni.cc: Loading AImage symbols
I/native: I0717 16:25:57.114636    8873 session.cc:553] Session::CheckAndWriteCurrentConfig returning OK.
W/native: W0717 16:25:57.115365    8873 analytics_collector.cc:911] Unsupported Depth Mode.
I/native: I0717 16:25:57.115586    8873 session.cc:1179] Entering Session::Resume.
I/native: I0717 16:25:57.116512    8873 camera_config_manager.cc:719] UpdateBugFixes on CameraConfigManager is unimplemented!
I/native: I0717 16:25:57.151391    8873 session.cc:3293] Update Frame Delay to 3 frames.
I/native: I0717 16:25:57.151597    8955 android_camera.cc:763] [Camera=0; State=CLOSED] Reset cleanly got to CLOSED state.
I/native: I0717 16:25:57.151735    8873 android_sensors.cc:185] Starting thread.
I/native: I0717 16:25:57.151871    8873 cameras.cc:1201] Included camera stream {camera_id = "0", stream_index = 0} as feature extraction streams.
    I0717 16:25:57.152057    8873 logger.h:28] DataSourceMetrics: kStartImageSubSystem: 195.937us
    I0717 16:25:57.152082    8873 session.cc:1367] Session::ResumeWithAnalytics returning OK.
I/native: I0717 16:25:57.156851    8983 android_sensors.cc:45] Gyro min delay 2.5ms requesting 5ms
I/native: I0717 16:25:57.162169    8983 android_sensors.cc:45] Accel min delay 2.5ms requesting 5ms
I/native: I0717 16:25:57.163736    8955 logger.h:28] CameraMetrics: OpenCamera: 10.604844ms
I/native: I0717 16:25:57.165190    8955 camera_ndk_wrapper.cc:27] Loading Android NDK 28 symbols from libcamera2ndk.so
I/Choreographer: Skipped 44 frames!  The application may be doing too much work on its main thread.
I/native: I0717 16:25:57.166044    8955 camera_ndk_wrapper.cc:47] Successfully loaded Android NDK 28 libcamera2ndk.so symbols.
I/native: I0717 16:25:57.167890    8873 session.cc:3293] Update Frame Delay to 3 frames.
I/native: I0717 16:25:57.167925    8983 android_sensors.cc:45] IMU Temperature min delay 200ms requesting 200ms
E/native: E0717 16:25:57.174610    8873 status.cc:162] FAILED_PRECONDITION: 
    ARCoreError: third_party/arcore/ar/core/session.cc:3131

    ARCoreError: vr/perception/depth/projects/motion_stereo/manager/motion_stereo_manager.cc:1946
    No depth data found for the requested timestamp. [type.googleapis.com/util.ErrorSpacePayload='ArStatusErrorSpace::AR_ERROR_NOT_YET_AVAILABLE']
E/native: E0717 16:25:57.176779    8873 session.cc:2466] Invalid ray produced by view data!
I/OpenGLRenderer: Davey! duration=881ms; Flags=1, IntendedVsync=107589159149407, Vsync=107589892482711, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=107589897217226, AnimationStart=107589897227174, PerformTraversalsStart=107589928855406, DrawStart=107589966033743, SyncQueued=107589978031192, SyncStart=107589978388588, IssueDrawCommandsStart=107589978625671, SwapBuffers=107590040439011, FrameCompleted=107590041380886, DequeueBufferDuration=2394792, QueueBufferDuration=368541, GpuCompleted=4589956407697001076, 
I/native: I0717 16:25:57.340279    8955 logger.h:28] CameraMetrics: CreateCaptureSession: 174.176892ms
I/native: I0717 16:25:57.341572    8955 capture_request_utils.cc:207] Flash: ConfigureRequestFlashMode - OFF
I/native: I0717 16:25:57.342552    8955 logger.h:28] DataSourceMetrics: kFirstGlCallback: 190.69054ms
I/native: I0717 16:25:57.342736    8951 cameras.cc:1387] Camera 0 changed state CLOSED->OPEN; Camera device opened successfully. i=0
    I0717 16:25:57.342776    8951 cameras.cc:1387] Camera 0 changed state OPEN->CAPTURING; Started capture session. i=1
W/Gralloc4: allocator 3.x is not supported
W/Gralloc3: allocator 3.x is not supported
E/Filament: in filament::MaterialParser *filament::createParser(filament::backend::Backend, const void *, size_t):57
    reason: the material was not built for the OpenGL backend
A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x20 in tid 8873 (com.memex.eu), pid 8873 (com.memex.eu)
I/native: I0717 16:25:57.509654    8986 logger.h:28] CameraMetrics: FirstCaptureComplete: 167.971944ms
I/native: I0717 16:25:57.526136    8984 timebase_helpers.cc:170] Timebase offset intialized to 0
    I0717 16:25:57.526265    8984 logger.h:28] DataSourceMetrics: kFirstImageCallback: 374.403892ms
W/native: W0717 16:25:57.534176    8968 feature_matcher_and_filter_utils.cc:260] INVALID_ARGUMENT: integration window start at 0 Use identity R.
E/native: E0717 16:25:57.637782    8971 motion_tracking_context.cc:1371] Unable to find measurements corresponding to VIO status at timestamp 419464771214001.
ghost commented 3 years ago

activity_main.xml

<!--
   Copyright 2017 Google Inc.

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.memex.MainActivity">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

        <androidx.fragment.app.FragmentContainerView
            android:id="@+id/arFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </FrameLayout>

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/placeAnchorsBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginEnd="24dp"
        android:layout_marginBottom="12dp"
        android:contentDescription="@string/btnPlaceAnchors"
        android:src="@android:drawable/ic_menu_add" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/pauseBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/placeAnchorsBtn"
        android:layout_alignParentEnd="true"
        android:layout_marginEnd="26dp"
        android:layout_marginBottom="17dp"
        android:contentDescription="@string/btnPause"
        android:src="@android:drawable/ic_media_pause"
        app:layout_anchor="@id/placeAnchorsBtn" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/recordArcoreBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginEnd="340dp"
        android:layout_marginBottom="12dp"
        android:contentDescription="@string/btnRecordArcore"
        android:scaleType="center"
        android:src="@android:drawable/ic_notification_overlay" />

    <TextView
        android:id="@+id/text_view_countdown"
        android:layout_width="80dp"
        android:layout_height="50dp"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginEnd="340dp"
        android:layout_marginBottom="70dp"
        android:gravity="center"
        android:background="@color/black_transparent"
        android:textColor="@android:color/white"
        android:textSize="30sp" />

    <Spinner
        android:id="@+id/listOfEllipsoidFileNames"
        android:background="@color/white"
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:layout_gravity="top|end"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <EditText
        android:id="@+id/trackIdTextInput"
        android:layout_width="80dp"
        android:layout_height="50dp"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginEnd="340dp"
        android:layout_marginBottom="70dp"
        android:textSize="30sp"
        android:gravity="center"
        android:textColor="@color/white"
        android:background="@color/black_transparent"
        android:autofillHints="type a number"
        android:inputType="number"
        tools:ignore="LabelFor" />

</RelativeLayout>
ghost commented 3 years ago

Code for onAttachFragment and onViewCreated. Rest of the code will be presented on request:

@RequiresApi(api = VERSION_CODES.O)
    @Override
    public void onAttachFragment(@NonNull FragmentManager fragmentManager, @NonNull Fragment fragment) {
        if (fragment.getId() == R.id.arFragment) {
            arFragment = (ArFragment) fragment;
            arFragment.setOnTapArPlaneListener(this);
            arFragment.setOnViewCreatedListener(this);
            arFragment.setOnSessionConfigurationListener(this);
        }
    }

    @RequiresApi(api = VERSION_CODES.O)
    @Override
    public void onViewCreated(ArFragment arFragment, ArSceneView arSceneView) {
        // Currently, the tone-mapping should be changed to FILMIC
        // because with other tone-mapping operators except LINEAR
        // the inverseTonemapSRGB function in the materials can produce incorrect results.
        // The LINEAR tone-mapping cannot be used together with the inverseTonemapSRGB function.
        Renderer renderer = arSceneView.getRenderer();

        if (renderer != null) {
            renderer.getFilamentView().setColorGrading(
                    new ColorGrading.Builder()
                            .toneMapping(ColorGrading.ToneMapping.FILMIC)
                            .build(EngineInstance.getEngine().getFilamentEngine())
            );
        }

        // Available modes: DEPTH_OCCLUSION_DISABLED, DEPTH_OCCLUSION_ENABLED
        arSceneView.getCameraStream()
                .setDepthOcclusionMode(CameraStream.DepthOcclusionMode.DEPTH_OCCLUSION_ENABLED);

        // Set a touch listener on the Scene to listen for taps and other gestures
        gestureHelper = new GestureHelper(/*context=*/ this);
        arSceneView
                .getScene()
                .setOnTouchListener(
                        (HitTestResult hitTestResult, MotionEvent event) -> {
                            gestureHelper.onTouchMotionEvent(event);
                            return true;
                        });

        // where all the processing happens during the ar session
        arSceneView.getScene().addOnUpdateListener(this::onUpdateFrame);

        // make plane renderer the same as in arcore apps
        Texture.Sampler sampler =
                Texture.Sampler.builder()
                        .setMinFilter(Texture.Sampler.MinFilter.LINEAR)
                        .setWrapMode(Texture.Sampler.WrapMode.REPEAT)
                        .build();
        Texture.builder()
                .setSource(this, R.drawable.trigrid)
                .setSampler(sampler)
                .build()
                .thenAccept(texture -> arSceneView.getPlaneRenderer()
                        .getMaterial()
                        .thenAccept(material -> {
                            material.setTexture(com.google.ar.sceneform.rendering.PlaneRenderer.MATERIAL_TEXTURE, texture);
                            material.setFloat3("baseColorTint",
                                    new Color(android.graphics.Color.argb(0.5f, 0,1.0f,0)));
                        }));

        // press this button to pause the app
        FloatingActionButton pauseAppBtn = findViewById(R.id.pauseBtn);
        pauseAppBtn.setOnClickListener(view -> {
            recordingHelper.setCanRecordNormally(false);
            recordingHelper.setCanRecordWithTaps(false);
            try {
                if (arSceneView.getSession() != null) {
                    arSceneView.getSession().stopRecording();
                }
            } catch (RecordingFailedException e) {
                runOnUiThread(() -> {
                    Toast toast =
                            Toast.makeText(getApplicationContext(),
                                    "Failed to start stop recording due to "
                                            + e.getMessage(),
                                    Toast.LENGTH_LONG);
                    toast.setGravity(Gravity.CENTER, 0, 0);
                    toast.show();
                });
            }
            currAppState = AppState.PAUSED;
        });

        // press this button to start arcore recording api
        FloatingActionButton recordWithArcoreBtn = findViewById(R.id.recordArcoreBtn);
        recordingCounterView = findViewById(R.id.recordingTimer);
        recordingCounterView.setEnabled(false);
        recordingCounterView.setVisibility(View.GONE);
        recordWithArcoreBtn.setOnClickListener(view -> {
            recordingCounterView.setEnabled(true);
            recordingCounterView.setVisibility(View.VISIBLE);
            try {
                if (arSceneView.getSession() != null) {
                    arSceneView.pause();
                    arSceneView.getSession().startRecording(recordingConfig);
                    arSceneView.resume();
                }
            } catch (RecordingFailedException | CameraNotAvailableException e) {
                runOnUiThread(() -> {
                    Toast toast =
                            Toast.makeText(getApplicationContext(),
                                    "Failed to start recording due to "
                                            + e.getMessage(),
                                    Toast.LENGTH_LONG);
                    toast.setGravity(Gravity.CENTER, 0, 0);
                    toast.show();
                });
            }
        });
    }
ghost commented 3 years ago

I solved this problem by loading my materials properly. I was using materials that were compiled to work with older versions of sceneform and not this one which requires gltf

RGregat commented 3 years ago

Your first issue isn't really related to Sceneform and what we are doing currently -> https://github.com/google-ar/arcore-android-sdk/issues/1186#issuecomment-792828106 The sfb -> gltf issue was in my opionion already a topic before we took over the repository -> https://github.com/google-ar/sceneform-android-sdk#choosing-the-right-sceneform-sdk-version-for-your-project And yeah the master branch should be used with care.