Status Update
Comments
ku...@google.com <ku...@google.com>
bo...@google.com <bo...@google.com> #2
1) Don't use app:navGraph in your XML
2) Get a reference to your NavController
3) Add your Navigator to the NavController
4) Call setGraph on the NavController
This relies on the fact that NavController waits until the graph is set before restoring state / doing anything at all.
Technically, the createFragmentNavigator() call in NavHostFragment is already called at the same time as your proposed onNavControllerCreated() method so as a workaround, you could override that method, add your Navigator, then return super.createFragmentNavigator().
bo...@google.com <bo...@google.com> #3
The workaround with createFragmentNavigator() works, though it's not very elegant. Maybe the method could be renamed to createNavigators() and return a list or an array of Navigators?
Anyway, it is a good enough solution for now, so it is not very urgent.
In conclusion:
* I think that a better support for custom destinations should be provided before final release.
* I would suggest describing the "Add support for new destination types" section in the documentation in more details.
Thank you
ad...@gmail.com <ad...@gmail.com> #4
Definitely something we can do better on though :)
tr...@gmail.com <tr...@gmail.com> #5
Branch: androidx-master-dev
commit a2e68921841727237528c4ac7076d50af64663c8
Author: Ian Lake <ilake@google.com>
Date: Wed Oct 17 16:46:28 2018
Make setGraph(int) and setGraph(NavGraph) act identically
Remove the auto restore functionality from NavController's
setGraph(int) method so that it functions identically to
setGraph(NavGraph).
This ensures that developers that manually are calling
setGraph() after adding custom navigators don't get
recreated too early.
Test: updated NavController test
BUG: 110763345
Change-Id: I51ae7c74451669d6bfed0fe84df445c2ff272e6e
M navigation/runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
M navigation/runtime/src/main/java/androidx/navigation/NavController.java
wd...@google.com <wd...@google.com> #6
This fix will be available in 1.0.0-alpha07
tr...@gmail.com <tr...@gmail.com> #7
Branch: androidx-master-dev
commit f40bad0faef05bded2d226711338e489309885ba
Author: Ian Lake <ilake@google.com>
Date: Tue Oct 23 21:03:24 2018
Ensure NavHostFragment calls setGraph on restore
If a graph is set on NavHostFragment via
NavHostFragment.create() or through
app:navGraph, it should be restored immediately
after the call to restoreState.
Test: testapp now works
BUG: 110763345
Change-Id: I7a0c656480e27a66637667519eabe61820b09a6c
M navigation/fragment/src/main/java/androidx/navigation/fragment/NavHostFragment.java
wd...@google.com <wd...@google.com> #8
RE#7
bohu@, any idea why this call would fail on host? I am also guessing maybe it has to do with the /etc/resolv.conf
on host.
if ((rc = getaddrinfo(addr, port, &ai, &local)) != 0) {
error_setg(errp, "address resolution failed for %s:%s: %s", addr, port,
gai_strerror(rc));
goto err;
}
bo...@google.com <bo...@google.com> #9
could be related to the linux flavor regarding address resolution.
my machine has almost the same config, and the getaddrinfo just works.
I wonder if there is some sys log you can put up here regarding that error.
bo...@google.com <bo...@google.com> #10
tr...@gmail.com <tr...@gmail.com> #11
OpenSUSE Tumbleweed has a toggle in it's network settings for "Enable IPv6". I don't have IPv6 on my internet connection and none of my local devices need it, so I usually leave it disabled.
I tried enabling it and viola, the emulator is starting for me again (without needing the ModemSimulator flag).
It looks like that toggle adds net.ipv6.conf.all.disable_ipv6 = 1
to /etc/sysctl.conf.
bo...@google.com <bo...@google.com> #12
that is very helpful information.
I was surprised that emulator does not even try ipv4 when ipv6 failed;
error_setg should be just a warning instead of quitting.
ad...@gmail.com <ad...@gmail.com> #13
Yes,turning IPv6 on worked for me too.
wd...@google.com <wd...@google.com> #14
bohu@, shall we close this bug?
wd...@google.com <wd...@google.com>
jo...@gmail.com <jo...@gmail.com> #15
wd...@google.com <wd...@google.com> #16
@bohu It is probably a good idea to make sure that emulator keeps going when the name service resolution fails in ipv6 for at line
if ((rc = getaddrinfo(addr, port, &ai, &local)) != 0) {
error_setg(errp, "address resolution failed for %s:%s: %s", addr, port,
gai_strerror(rc));
goto err;
}
wd...@google.com <wd...@google.com>
bo...@google.com <bo...@google.com> #17
there should ahve been more attempts before erroing out
ra...@google.com <ra...@google.com> #20
This bug has been verified as fixed with the latest Emulator Stable 32.1.13-10086546 on my Linux workstation. Following steps are followed to reproduce and verify the issue
- Disabled Network connectivity on my machine
- Launch API 30/31/32 AVDs using older Emulator[API 30 worked and 31/32 failed]
- Installed Latest Emulator 32.1.13-10086546
- Launch API 30/31/32 AVDs using new Emulator[API 30/31/32 works]
Description
AI-203.7717.56.2031.7935034, JRE 11.0.10+0-b96-7249189x64 JetBrains s.r.o., OS Linux(amd64) v5.15.0-051500-generic, screens 1366.0x768.0
Emulator version:31.1.4
Android SDK platform tools version:31.0.3
Host cpu:12th Gen Intel(R) Core(TM) i5-12600K
Device name:Pixel 5
Emulator with system image android 11 is working properly but Android 12(31) and 12L(32) is not even loading in my PC.
It was working perfectly in my previous PC with Ryzen 3200G processor,So I believe that the issue is with intel 12th gen processor.FYI I'm not using any external GPU.running emulator in cpu.