viromedia / viro

ViroReact: AR and VR using React Native
MIT License
2.31k stars 483 forks source link

ViroSample gvrRelease can't run on Samsung Galaxy S8 #300

Closed ccwai closed 6 years ago

ccwai commented 6 years ago

Environment: macOS High Sierra Version 10.13.4 Android Studio 3.1.2

Here is my device: -Samsung Galaxy S8 (SM-G9500) -Android version: 7.0 -Samsung Experience version: 8.1

I have followed the tutorial using react-viro cli to create a ViroSample project, and executed setup-ide.sh to initialise android project. Here is the version: "react": "16.3.1", "react-native": "0.55.1", "react-viro": "2.6.1"

I kept the project untouched except doing these:

And then I launched the app using Android debug mode. I clicked the VR button, It works fine.

After that, I selected gvrRelease in Android Studio and run. When I click the VR button, the screen seems just flashed and then relaunched.

I used another android devices (Mi 4i, Moto G4) to do the same thing, it works fine. It seems only happen in Samsung Galaxy S8 running gvrRelease (gvrDebug works fine).

Please help! Thanks a lot!

manbod commented 6 years ago

Hi @ccwai , Thanks for reaching out to us. This seems to be a react-native + Android Studio bug. Android studio, out of the box, does not bundle react-native code + assets. This issue is documented here and other places on react-native forums. The easiest way for you to resolve this would be to go to {sampleProject}/android/ folder and then run ./gradlew bundleGvrReleaseJsAndAssets And then go through the Generate Signed APK process through Android studio. I just verified this using a Samsung S8 we have here.

Let us know if that works for you.

ccwai commented 6 years ago

Hi @manbod , Thanks for your reply. I have tried the work around that you suggested, but it didn't work. It seems not the problem of Android Studio because this issue is only happened on Samsung S8. I have also run ./gradlew assembleGvrRelease and deploy. It works on other android devices but not Samsun S8. I am not sure if it is my Samsung S8 problem.

I took a video here for your reference. Will you help to have a look? Again, it only happens on Samsung S8. Thanks a lot!

manbod commented 6 years ago

Hi @ccwai, Can you capture device logs from your Samsun S8 when this happens and upload them here? We can take a look as to what’s happening.

Thanks

ccwai commented 6 years ago

Hi @manbod , Thanks for quick reply! The situation is now updated. I have performed the system update and now the version is Android 8.0.

Under debug build: Everything works fine like before.

Under release build: When I click VR button, I can now see the 'Hello World' text. However I found two situation:

  1. When the App is in VR mode, all of the edge swipe gestures are not working. i.e. I can't swipe from the edge to show android buttons and the status bar.
  2. When I tap the close button (the X on the top left corner), the screen will flash and the app will relaunch.

I have captured the device logs. I hope it helps for your diagnosis. logs.txt

Many thanks!

dam00n commented 6 years ago

Hi @ccwai, thanks for the additional info and logs. One clarification, the release build issue you stated above are only happening on your Samsung 8 correct? We will have to dive into this more and repro on our end. Will get back to you once we know more

ccwai commented 6 years ago

Hi @dam00n ,

the release build issue you stated above are only happening on your Samsung 8 correct?

It is correct. If I connect Samsung S8 to my Mac with USB cable and run the gvrDebug variant, everything works fine. Thanks for your help! Your team is really helpful!

manbod commented 6 years ago

Hi @ccwai , I was able to verify the first issue (no edge swipe working in VR) on the samsung S8. Looking at some of the Google's Cardboard forums, this seems to be related to a Google VR Services update that affects some of the Samsung Galaxy line of devices. There are a few posts here with similar problems you are facing - https://forum.unity.com/threads/bug-with-latest-galaxy-s8-update-no-vr-mode-anymore.489022/ https://github.com/googlevr/gvr-android-sdk/issues/548 List of fairly similar other issues -> https://github.com/googlevr/gvr-android-sdk/issues?page=2&q=samsung

The mitigation from the first post seems to work for me on our Samsung S8. Can you try going to your Settings -> Apps -> Google VR Services -> Hit Disable. My swipe gestures started working after disabling Google VR Services. (You can also try going to Play Store, and seeing if your device gets an update for Google VR Services prior to disabling it. Some of the posts on the forums above mention the issue was fixed for them after updating their Google VR Services)

Verified this only happens on some of the Samsung S* line of devices. Let us know if this doesnt work for you.

ccwai commented 6 years ago

Hi @manbod , Thank you so much!!! After I disabled Google VR Services, the issue is gone! It works fine. Issue close.

A curious question, will disabling Google VR Services bring any drawbacks?