Android issues

Hi, this is a summary of all the issues we have with android.

  1. Errors on console at build (this apparently don’t have any effect on the app): Gist
  2. Images don’t display correctly (iOS device top iPhone 6s, Android bottom Lenovo A6000-I - same result with a Samsung Galaxy S5): img
  3. Just sometimes, on a TextInput, i have to tap two or three times for the keyboard to appear. On iOS only once.
  4. The Done button of the keyboard does nothing. Do i have to code something? iOS keyboard works ok.
  5. We are using <Android.StatusBarConfig IsVisible="false"/> on our MainView. It works ok until we show the keyboard, from there the statusbar is always visible and is affecting the layout of the app.
  6. Some screens are completely wrong about images, replacing some images with others. image
  7. A Youtube video on a webview isn’t displayed the same size as iOS does: html Gist - image
  8. On a textinput with a MaxLength, let’s say 3. If i write ‘abcdef’ it display only ‘abc’ which is correct, but the autocorrection works for the full word ‘abcdef’. If i start to delete characters, i have to delete all the non visible characters (‘def’) first and then delete the first ones. On iOS it works ok (i write ‘abc’ and nothing more happens). We don’t know if this is an Android or Fuse problem.

That would be it, we are kinda worried because we have to launch the app on Google Play on October 1st.
Any help would be greatly appreciated.

Tests were made with Fuse 0.25, on iPhone 6s (iOS 9.3.4), Lenovo A6000-I (Android 4.4.4), Samsung Galaxy S5 (Android 6.0.1)

Thanks for this report! A couple of these are known issues but many of the others are not.
We’ll get back to you on this as soon as we can.

Hi Gonzalo,

Thanks for writing an extensive report.

It would be very helpful if you could upload either your complete project, or test cases reproducing each issue here: https://www.dropbox.com/request/ZgndLtJQm5eGzG9cicGK . This is a private upload only for the Fuse support staff.

Hey Gonzalo, maybe I can help with Item 1.

As I’m sure you have seen, some android implementations are a bit… creative and can be super noisy in the logs or have manufacturer specific errors, any clues you can provide regarding which android devices you see these on will be helpful (but not urgent so no need to rush :slight_smile: )

This may be device specific, but we will keep an eye out for it.

E/Zygote  (27855): Zygote:  error closing descriptor
E/Zygote (27855): libcore.io.ErrnoException: close failed: EBADF (Bad file number)

These are just android being noisy, no need to worry

D/dalvikvm(27855): Trying to load lib /data/app-lib/com.apps.hattrick-1/libstlport_shared.so 0x42306b68
D/dalvikvm(27855): Added shared lib /data/app-lib/com.apps.hattrick-1/libstlport_shared.so 0x42306b68
D/dalvikvm(27855): No JNI_OnLoad found in /data/app-lib/com.apps.hattrick-1/libstlport_shared.so 0x42306b68, skipping init
D/dalvikvm(27855): Trying to load lib /data/app-lib/com.apps.hattrick-1/libV8Simple.so 0x42306b68
D/dalvikvm(27855): Added shared lib /data/app-lib/com.apps.hattrick-1/libV8Simple.so 0x42306b68
D/dalvikvm(27855): No JNI_OnLoad found in /data/app-lib/com.apps.hattrick-1/libV8Simple.so 0x42306b68, skipping init
D/dalvikvm(27855): Trying to load lib /data/app-lib/com.apps.hattrick-1/libHatTrick.so 0x42306b68
D/dalvikvm(27855): Added shared lib /data/app-lib/com.apps.hattrick-1/libHatTrick.so 0x42306b68

These have a open issue and are being worked on

E/libEGL  (27855): eglSwapBuffers:1064 error 300d (EGL_BAD_SURFACE)
E/libEGL (27855): eglSwapBuffers:1064 error 300d (EGL_BAD_SURFACE)

This one is interesting, how often do you see it?

VFY: unable to resolve virtual method 10497: Landroid/view/Window;.setStatusBarColor (I)V

Issue 2 got worked out, it was down to a misinterpretation of WhileWindowSize which meant that for some window densities no image was shown. We’ll see if we can improve the documentation for that one. :slight_smile:

Hi guys, i have updated info:

  1. hi @Chris, about setStatusColorBar, it always happen with the Lenovo. With a Samsung Galaxy J1 Ace doesn’t, and no errors are displayed. Here is a Gist. Oddly, a Moto X don’t display any log.
  2. as @Remi said, with his help we were able to fix this issue using Invert=“true” with WhileWindowSize
  3. On Samsung Galaxy ace (5.1.1), Samsung Galaxy S5 (6.0.1) and Lenovo (4.4.4), at the first tap a cursor is displayed on the textinput. On a second tap (or sometimes third because second does nothing) the keyboard is displayed. However, on a Motorola X (6.0) the keyboard appears on the first tap.
  4. I changed the ActionStyle to Done but still nothing. I sent a short video to @Remi with the case.
  5. In some devices, the app starts with the status bar, the layout moves and gets wrong, and then after a while the statusbar hides, but the layout stays wrong. I’m assuming this is because we’re using <Android.StatusBarConfig IsVisible="false"/> and not something on the .unoproj or the xml android files?

No changes on 6, 7 and 8.

We’re working on test cases to reproduce the issues and we hope we’ll be uploading them at the end of the day.

Thanks!

I believe I have a fix for issue 6, but I haven’t been able to verify it properly yet.

Guys, finally we uploaded the entire project to dropbox.
Please note that it’s pointing to our private test server, so it can be slow to respond.

Please contact me at slack for any doubt with the project (@gonzo)

thanks!

I have similar issues in Android as well, specially #3 and #5. Also, noticed that the taps are a bit off, we have to tap a bit above the area for it to work. Almost seems like some calculation is off due to the android button bar at the bottom.

Also, if I try running just the Preview version then the app runs much better and even the taps are much better recognized, and don’t have to tap above the area.

Hi!

I have investigated the StatusBar issue, there are some Android quirks that makes the internal state for the StatusBar visibility be reset whenever the SoftKeyboard is on screen. This is hard to prevent and the cleanest fix I have come up with so far is to update the state whenever the keyboard is dismissed.

It should be possible to hide the StatusBar even if the keyboard is visible, but I have to do some non-trivial changes to get that all to work. Putting this in our backlog so I can revisit later.

The fix is in the pipeline for the upcoming 0.26 release

Thanks Vegard! Have you been able to find problem/solution for #3? That basically makes the app unusable. We could probably work around the status bar issue, and perhaps even let it be just visible for now.

  1. We have a repro for this now and will see what we can do. Turns out it only happens in landscape mode (which is of course a requirement for your app).

  2. As for the done button / text input you can try something like this:

<TextInput ActionStyle="Done" ActionTriggered="{idone}">
	<TextInputActionTriggered>
		<ReleaseFocus/>
	</TextInputActionTriggered>
</TextInput>
  • The ReleaseFocus should ensure the keyboard is dismissed and you get back to where you were before you started filling in the text field
  • The ActionTriggered JS handler can be used if you want to initiate any additional actions when pressing Done, such as starting registration. Just leave it out if you don’t need that. :slight_smile: