Einschränkungen und Fehlerbehebung

Einschränkungen in Figma und Übersetzung

Unterstützte Figma-Ebenentypen

Relay unterstützt nur die folgenden Ebenentypen:

  • Textknoten
  • Bildknoten (PNG, JPEG usw.)
  • Frame-Knoten (Auto-Layout und nicht-Auto-Layout)
  • Komponenten und Varianten, Komponenteninstanzen
  • Vektorknoten

Nicht unterstützte Ebenen und Funktionen in Figma

  • Prototyping-Funktionen
  • Maskierungsgruppen
  • Slice-Ebenen

Nicht unterstützte Figma-Eigenschaften

Es gibt mehrere nicht unterstützte Eigenschaften, darunter:

  • Schatten nach innen, Ebenenweichzeichner und Weichzeichner-Hintergrund
  • Ebenenrotation (Vektorrotation wird unterstützt)
  • Mischmodi für Ebenen oder Striche (Füllmodus wird unterstützt)
  • Texteigenschaften: <ph type="x-smartling-placeholder">
      </ph>
    • Absatzabstand
    • Absatzeinzug
    • Zahlenstil
    • Briefformen
    • Stilistische Sets
    • Durchstreichen und unterstreichen
    • Zeilenhöhe (funktioniert auch bei Anwendung auf das gesamte Textelement)
  • Vektoreigenschaften: <ph type="x-smartling-placeholder">
      </ph>
    • Funktionen, die im VectorDrawable-Format von Android nicht unterstützt werden: <ph type="x-smartling-placeholder">
        </ph>
      • Eingebettete Bitmapbilder <ph type="x-smartling-placeholder">
          </ph>
        • Mit Ausnahme von Rechtecken, die als Bilder unterstützt werden, Vektoren
      • Gestrichelte Striche
      • Unkenntlich machen
      • Schatten
      • Muster
      • Schutzmaske
      • Deckkraft der Gruppe
      • Fokuspunkt mit radialem Farbverlauf
    • Funktionen, die im SVG-Format nicht unterstützt werden: <ph type="x-smartling-placeholder">
        </ph>
      • Angulare Farbverläufe
      • Rautenverläufe
    • Boolesche Operationen zwischen Vektorobjekten (Union / Subtraktion / Schnittmenge) / ausschließen) <ph type="x-smartling-placeholder">
        </ph>
      • Eine Behelfslösung besteht darin, zu einem einzigen Vektor zu kombinieren und ihn zu vereinfachen.

Teilweise unterstützte Figma-Ebenen und -Eigenschaften

  • Das Abschneiden von Text (Auslassungspunkte) funktioniert am zuverlässigsten, wenn das Textelement nur eine Zeile
  • Füllfarbe: <ph type="x-smartling-placeholder">
      </ph>
    • Bilder können nur eine Füllung haben, aber zusätzliche Füllungen von andere Typen (z.B. Farbverläufe)
    • Bei Farbverläufen wird nur „Linear“ unterstützt. Künftige Releases bieten Support für die übrigen Farbverlaufstypen (Radial-, Rauten-, und eckig).
    • Im Figma-Plug-in gibt es keine Möglichkeit, anzugeben, dass ein Parameter mehrere Füllungen akzeptieren. Wenn Sie eine Füllfarbe parametrisieren möchten, Volltonfarben werden derzeit für Parameter unterstützt,
  • Schlagschatten: <ph type="x-smartling-placeholder">
      </ph>
    • Schlagschatten funktionieren derzeit nicht auf den folgenden Ebenen: <ph type="x-smartling-placeholder">
        </ph>
      • Nicht rechteckige Vektoren
      • Gedrehter rechteckiger Vektor
    • Mehrere Schlagschatten pro Ebene werden nicht unterstützt.
    • Mischmodi des Schlagschattens außer „Normal“ sind nur auf Android-Version 10 oder höher (andernfalls ignoriert)
    • Schlagschatten auf Ebenen sind nur auf Android-Versionen ab 9 verfügbar, mit folgenden Ausnahmen: Text, der in allen Android-Versionen verfügbar ist, die von Compose unterstützt werden.
    • Schatten werden in „Compose“ immer hinter transparenten Ebenen angezeigt.
  • Absolute Positionierung innerhalb von Auto Layout: <ph type="x-smartling-placeholder">
      </ph>
    • Absolute Objekte müssen entweder hinter oder vor allen Objekten der Auto-Layout-Elemente im Frame. Beliebige absolute Position zwischen Auto-Layout-Elementen überlagert werden, der Vorderseite dieser Objekte.
    • Verschachteln von Frames für automatisches Layout mit absolut positionierten Objekten anderen Auto-Layout-Frames zu einem falschen Layout führen, des verschachtelten Frames wird durch die Positionierung der Elemente in Frame.

Mehrere Stile werden verworfen, wenn sie an einen Textparameter mit einem Stil übergeben werden

Wenn eine übergeordnete Komponente versucht, Text mit mehreren Stilen in eine verschachtelte -Komponententextparameter mit nur einem Stil haben, gehen die verschiedenen Stile in den generierten Compose-Code. Nur der ursprüngliche Stil des Textparameters beibehalten.

Diese Verschlechterung ist erforderlich, um Typabweichungen zu vermeiden, durch die generierte Code aus der Kompilierung. Wenn der Text in einer Komponente über mehrere Stile verfügt, die generierte zusammensetzbare Funktion hat den Parameter AnnotatedText. Wenn der Text in einem Komponente nur einen Stil besitzt, hat die generierte zusammensetzbare Funktion eine einfache String-Parameter. Im obigen Szenario müssen wir das übergeordnete Element Rich-Text der Komponente von AnnotatedText auf String ändern, wobei mehrere Stile, damit er an die verschachtelte Komponenteninstanz übergeben werden kann.

Verschachtelte Komponenten mit denselben Varianteneigenschaften wie die übergeordnete Komponente können nicht kompiliert werden.

Wenn zwei Komponenten eine [Designvariante]{:.external} mit derselben Eigenschaft haben Name und verschachtelt die andere. In generierten Code werden dann die für die haben zwei Varianten denselben Namen und es tritt ein Kompilierungsfehler auf:

Conflicting import, imported name '(variant property)' is ambiguous

Um dieses Problem zu umgehen, ändern Sie den Namen der Varianteneigenschaft einer der Komponenten.

Unterstützte Schriftarten

Derzeit werden nur Schriftarten von Google Fonts unterstützt.

Fehlerbehebung bei Android Studio

Ich habe eine Fehlermeldung zum Konvertieren von SVG-Ressourcen unter Windows erhalten

FAILURE: Build failed with an exception.
*   What went wrong:
Execution failed for task ':app:generateDebugRelayCode'.
> A failure occurred while executing com.google.relay.gradle.GenerateCode$GenerateCodeWorkAction
      > Converting SVG files: Exception Converting SVG resources for my_packaged_component
        The syntax of the command is incorrect

Der Name Ihres Android Studio-Projekts ist möglicherweise zu lang. Unter Windows ist der vollständige Pfad Das Android Studio-Projekt darf maximal 70 Zeichen lang sein. Wir arbeiten daran, in einer zukünftigen Version verlängern.

Updates werden nicht in Android Studio importiert

Das Plug-in ruft nur die neueste benannte Version Ihrer Figma-Datei ab. Überprüfen Sie noch einmal, ob Sie eine neue benannte Version Ihrer Figma-Datei mit die Änderungen vor.

Ich erhalte beim Erstellen eine Fehlermeldung zu SVG und Java Runtime.

Converting SVG Files: Exception running shell command 'cd /path-to/relay/bin; path/to/relay/bin/vd-tool -c -in path/to/hello_card -out /var/folders/...'.
The operation couldn't be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.

Installieren Sie die Java-Laufzeit und starten Sie den Build dann noch einmal.

Ich erhalte eine Fehlermeldung zu Schriftarten beim Erstellen

Möglicherweise wird eine Fehlermeldung wie diese angezeigt:

FAILURE: Build failed with an exception.
*   What went wrong:
Execution failed for task ':app:generateDebugRelayCode'.
> Multiple task action failures occurred:
   > A failure occurred while executing com.google.relay.gradle.GenerateCode$GenerateCodeWorkAction
      > /Users/me/AndroidStudioProjects/MyProject/app/build/generated/res/relay/debug/font/relay_inter_bold.ttf
   > A failure occurred while executing com.google.relay.gradle.GenerateCode$GenerateCodeWorkAction
      > /Users/me/AndroidStudioProjects/MyProject/app/build/generated/res/relay/debug/font/relay_inter_bold.ttf

Dies wird durch eine Race-Bedingung verursacht, bei der mehrere Komponenten versuchen, in dasselbe Verzeichnis. Wir arbeiten an der Lösung dieses Problems. In der Zwischenzeit versuchen Sie es einfach noch einmal.

In Android Studio kann ein gelöschter UI Package-Ordner möglicherweise nicht rückgängig gemacht werden

Wenn Sie unter Android einen UI Package-Ordner im Ordner ui-packages löschen Studio zurück und machen Sie den Löschvorgang für alle Dateien in diesem Ordner rückgängig, die die vor dem Löschen geöffnet wurden, können möglicherweise nicht wiederhergestellt werden.

Problemumgehung: Importieren Sie die Version der Figma-Datei, die Sie benötigen, noch einmal. Datei > Neu > Import UI Packages... (UI-Pakete importieren...) Sie können auch auf jede Datei im UI Package Ordner nach dem Import, um sicherzustellen, dass er ordnungsgemäß wiederhergestellt wird.

Durch das Aktualisieren von Ressourcen außerhalb von ui-packages wird kein neuer Build erzwungen

Eine Abhängigkeit aktualisieren, die sich außerhalb des Verzeichnisses ui-packages befindet (z. B. Theme-Zuordnungsdatei oder Referenzkomponentendatei) erzwingt nicht, dass der Code die beim Erstellen des Projekts neu generiert werden.

Problemumgehung: Um eine Aktualisierung des generierten Codes zu erzwingen, bereinigen Sie das Projekt (siehe Erstellen > Projekt bereinigen) oder löschen Sie den generierten Codeordner, der mit UI-Paket, das aktualisiert werden muss. Dann erstellen Sie es noch einmal.

Generierter Code oder ui-packages Ordner fehlen im Android-Projektbrowser

In einigen Fällen werden Ordner, die vom Plug-in "Relay for Android Studio" generiert wurden, nicht werden im Android-Projektbrowser angezeigt.

Problemlösung: Klicken Sie mit der rechten Maustaste auf einen Ordner auf oberster Ebene, um Projektordner neu zu laden. wählen Sie „Vom Datenträger neu laden“ aus.

App-Designs für untergeordnete Komponenten werden nicht aktualisiert

Wird eine übergeordnete Komponente mit einem neuen App-Design importiert, -Komponenten (in DEPS.txt aufgeführt) übernehmen nicht das neue Design.

Problemlösung: Kopieren Sie das Vorschaudesign aus dem config.json und ersetzen Sie die Variable eine Vorschau der Designs in jedem bzw. config.json. Nach der Neuerstellung werden die Designs in den generierter Code korrigiert.

UI-Paketname muss mit einem Buchstaben beginnen

Wenn der Name eines UI-Pakets nicht mit einem Buchstaben beginnt, generiert Relay die Funktion „Schreiben“ Code, der nicht kompiliert wird, mit der Fehlermeldung The resource name must start with a letter.

Problemumgehung: Benennen Sie den UI-Paketnamen in Figma um, sodass er mit einem Buchstaben beginnt.

Schriftabstand in Compose stimmt nicht mit Figma überein

Figma und Compose legen das Layout von Text innerhalb des Markierungsrahmens unterschiedlich fest. E-Mail-Text mehr Abstände entlang des Begrenzungsrahmens.

Problemumgehung: Sie müssen die Textposition in Figma ein paar Pixel nach oben verschieben. damit er in der E-Mail-Adresse des Verfassens korrekt angezeigt wird. Wir arbeiten an einer dauerhaften Lösung.