nawigacja jetpack: navhostmanager nie jest aktywnym fragmentem fragmentmanager
<p>używam nawigacji jetpack do obsługi nawigacji dla fragmentów.<br>[...</p><p><strong> wyjątek: </strong></p><pre><code>java.lang.illegalargumentexception: fragment navhostfragment{820022f} is not an active fragment of fragmentmanager fragmentmanager{5a5703c in hostcallbacks{a0b41c5}} at android.support.v4.app.fragmentmanagerimpl.setprimarynavigationfragment(fragmentmanager.java:3389) at android.support.v4.app.backstackrecord.executeops(backstackrecord.java:783) at android.support.v4.app.fragmentmanagerimpl.executeops(fragmentmanager.java:2595) at android.support.v4.app.fragmentmanagerimpl.executeopstogether(fragmentmanager.java:2382) at android.support.v4.app.fragmentmanagerimpl.removeredundantoperationsandexecute(fragmentmanager.java:2337) at android.support.v4.app.fragmentmanagerimpl.execpendingactions(fragmentmanager.java:2244) </code></pre><p><strong> główny układ aktywności </strong></p><pre><code>&lt;framelayout 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:id="@+id/container" android:layout\_width="match\_parent" android:layout\_height="match\_parent" tools:context=".loginactivity" &gt; &lt;fragment android:layout\_width="match\_parent" android:layout\_height="match\_parent" android:id="@+id/my\_nav\_host\_fragment" android:name="androidx.navigation.fragment.navhostfragment" app:navgraph="@navigation/nav\_graph" app:defaultnavhost="true" /&gt; &lt;/framelayout&gt; </code></pre><p><strong> działalność główna - kotlin </strong></p><pre><code>class mainactivity : appcompatactivity() { override fun oncreate(savedinstancestate: bundle?) { super.oncreate(savedinstancestate) setcontentview(r.layout.login\_activity) if (savedinstancestate == null) { supportfragmentmanager.begintransaction() .replace(r.id.container, loginfragment.newinstance()) .commitnow() } } override fun onsupportnavigateup() = findnavcontroller(r.id.my\_nav\_host\_fragment).navigateup() } </code></pre><p>próbuję przetestować funkcje jetpack, a obecnie utknąłem na tym, każdy ma pojęcie, co może być nie tak? czy to dlatego, że android 3.2 wciąż jest w podglądzie? każda pomoc byłaby bardzo mile widziana ..</p>
<p>rozwiązany.</p><p>problem pochodzi z wywołania do fragmentmanager, aby zastąpić jego zawartość nową instancją loginfragment, po prostu usunięcie następującego fragmentu kodu z metody oncreate rozwiązało go</p><pre><code>if (savedinstancestate == null) { supportfragmentmanager.begintransaction() .replace(r.id.container, loginfragment.newinstance()) .commitnow() } </code></pre>
dziękuję za opis sytuacji. 
utworzę plik naprawczy/oczyszczający. 
frst zaznaczył lenovo app explorer, gdyż ma to związek ze sweetlabs. odinstaluj go. 
ogólnie, zalecam przejrzeć zainstalowane programy i usunąć nieużywane. 
masz sporo zaplanowanych zadań, a dotyczą one w większości lenovo, a część z… dolphin ma wbudowane działania administratora, nie potrzeba do nich osobnych wtyczek. co najwyżej może być konieczne zaznaczenie ich w ustawieniach dolphina. pech chce, że niestety otwieranie dolphina jako root nie działa. o wtyczkach z sieci się nie wypowiem, nie wiem, z jakich korzystasz. można to… nie pobieraj pliku apk.  
prawdopodobnie masz zainstalowany sklep google play, tylko wyłączony.  
wchodzisz w menu i szukasz aplikacji, a tam szukasz "wszystkie aplikacje".  
wyświetlą się te uruchomione, zatrzymane i wyłączone.  
  
drugi sposób, to przywrócenie telefonu do ustawień fabrycznych (hard reset). jeśli masz jakieś ważne pliki w pamięci wewnętrznej telefonu, to przenieś je na zewnętrzny nośnik. następnie zrób hard reset. nie korzystam z tlp. z tego co widzę, jest to pakiet przeznaczony raczej do laptopów, a ja mam desktop, zarządzany przez menedżer zasilania (xfce4-power-manager).

nie korzystam z hibernacji i nie mam żadnego screensaver’a.

tryb usypiania systemu mam określony jako “wstrzymanie” (pisząc o usypiani… Działa, tylko trzeba pobrać pakiet językowy na urządzenie z Androidem.
  
Tutaj jest wszystko objaśnione <https://support.google.com/translate/answer/6142473?hl=pl>
  
Wcześniej pobierasz pakiety i działa offline. Jest to istotne, jeśli mają miejsce, w którym dane mogą zapełnić się partycję i zapobiec coś innego z systemem; Pliki dziennika aplikacji może wypełnić partycji i nie pozostawiają miejsca na tmp inne aplikacje do zapisu lub systemu operacyjnego do zapisu, tak tak, nadal istnieją istotne powody do partycji. Wystarczy spojrzeć na to, co trzeba i zdecydować, czy cokolwiek może zapobiec reszty systemu przed użyciem. Jeśli tak, chcesz podzielić się więc, że jeśli robi się maksymalną przestrzeń, tylko niszczy się. Ja polecam darmowe mapy offline o nazwie Maps.Me - <http://www.download.net.pl/kolejna-swietna-nawigacja-offline-za-darmo-na-android-i-iphone/n/5307/> [@phx84lbn](/u/phx84lbn)

to, o czym wspominasz to jeszcze inna funkcja, która zwija tylko powiadomienia do węższego paska.

[@miiio](/u/miiio)

na zdjęciu to nie jest ekran blokady, tylko funkcja aod (always on display)

wcale nie musi być dostępna na twoim smartfonie, bo wymaga wyświetlacza amoled. na ips jest bez sensu, to… użyj smartfona jako pilota. np: Jaki jest twój cel wdrażania? Jest to **<8.0** ? Jeśli tak te cele, które nie obsługują ram osadzone i jako takie wszystko co musisz zrobić to:


* Przeciągnij Alamo.Swift do projektu nawigacji (Upewnij się, że kopiowanie plików w razie potrzeby)
* Usuń instancje „Usage” **Alamofire.request** staną się **prośba**


więc kod trzeba będzie:



```
request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"])
 .responseSwiftyJSON { (request, response, json, error) in
             println(json)
             println(error)
           }

```

Więc teraz, że jest to, że ramy. Ponieważ mam trochę czasu teraz pokażę ci, jak uzyskać to wszyscy pracujemy i neaten go trochę.


Po wykonaniu powyższych czynności: 


* przeciągnij SwiftyJSON.swift na danym obszarze nawigacyjnym projektu


Znowu ... Upewnij się, że kopiowanie plików w razie potrzeby. Że jest to dla ram również.


Prawo do neaten go trochę - Nie musisz tego robić, ale jej zawsze lepiej użyć zmiennych i tablic, gdzie można dokonać czystsze i przyspieszyć czas kodowania. Na swoim przykładzie powyżej to zrobić:



```
var url = "http://httpbin.org/get"
var arr_parameters = [
    "foo": "bar"
]

request(.GET, url, parameters: arr_parameters)

```

Jej także dobry pomysł, aby włączyć niektóre badania błędzie, dzięki czemu można debugować rzeczy łatwiejsze, a także zapewnić fallbacks itp ...


tak, mając to na uwadze, cały kod powinien wyglądać tak: 



```
var url = "http://httpbin.org/get"
var arr_parameters = [
    "foo": "bar"
]

request(.GET, url, parameters: arr_parameters)
   .responseJSON { (req, res, json, error) in
            if(error != nil) {
                NSLog("Error: \(error)")
                println(req)
                println(res)
            }
            else {
                NSLog("Success: \(url)")
                var json = JSON(json!)
            }
    }

```

Było naprawdę dobry artykuł pokrycia tego w [SwiftMonthly](http://swiftmonthly.com/?utm_source=StackOverflow&utm_medium=StackOverflow&utm_campaign=StackOverflow)


Mam nadzieję, że to pomoże. Powodzenia i trzymać nas zaksięgowane.