mapbox / mapbox/mapbox-navigation-android
InstructionView not being rendered in LayoutPreview
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Kotlin
- Sterne
- 651
- Forks
- 321
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
**Android API:**
**Mapbox Navigation SDK version:** 1.0.0-rc7 of both normal and ui sdk.
### Steps to trigger behavior
1. Include `com.mapbox.navigation.ui.instruction.InstructionView` in a layout
2. Build project
3. Layout Preview fails to render layout, as somewhere something uses `ConnectionPool`, which shouldn't be done when `isInEditMode()`.
### Expected behavior
InstructionView preview renders with static/sample data, showing the customized colors
### Actual behavior
Class can not be instantiated and therefore can't be previewed.
```
java.lang.NoClassDefFoundError: Could not initialize class okhttp3.internal.concurrent.TaskRunner
at okhttp3.ConnectionPool.(ConnectionPool.kt:41)
at okhttp3.ConnectionPool.(ConnectionPool.kt:47)
at okhttp3.OkHttpClient$Builder.(OkHttpClient.kt:445)
at com.mapbox.navigation.ui.instruction.GuidanceViewImageProvider.(GuidanceViewImageProvider.kt:36)
at com.mapbox.navigation.ui.instruction.InstructionView.(InstructionView.java:130)
at com.mapbox.navigation.ui.instruction.InstructionView.(InstructionView.java:180)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:403)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:186)
at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:144)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:309)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:416)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:427)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:331)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1097)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.inflate(LayoutInflater.java:682)
at android.view.LayoutInflater.inflate(LayoutInflater.java:501)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:348)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:404)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:141)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:678)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$8(RenderTask.java:809)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
```
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne bei den InstructionView-Konstruktoren und der Initialisierung von GuidanceViewImageProvider, die im Stacktrace gezeigt werden, und verfolge anschließend, wo ConnectionPool während der Layout Preview erstellt wird. Überprüfe den isInEditMode-Pfad und stelle sicher, dass Layout Preview InstructionView mit statischen oder Beispieldaten und angepassten Farben ohne die Exception rendert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- android, kotlin
- Bereich
- mobile
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100