No such export getSharedObject in resource es_extended: die Lösung
Bekommen Sie 'No such export getSharedObject in resource es_extended'? Das bedeutet, dass es_extended nicht ausgeführt wird, wenn Ihr Skript danach fragt. Die Ursachen, von der Startreihenfolge bis zu einer fehlgeschlagenen Datenbankverbindung.
Der vollständige Fehler sieht normalerweise so aus, in der Serverkonsole oder in F8:
SCRIPT ERROR: @my_script/server/main.lua:1: No such export getSharedObject in resource es_extendedDer Code ist richtig. exports['es_extended']:getSharedObject() ist genau die Art und Weise, wie ESX Legacy sein Objekt verteilt. Das Problem ist wann es läuft: In diesem Moment ist es_extended nicht da, um zu antworten.
1. es_extended startet nach Ihrem Skript
In neun von zehn Fällen ist dies die Ursache. FiveM startet Ressourcen in der Reihenfolge Ihrer server.cfg, und ein Skript, das in der ersten Zeile nach ESX fragt, muss es_extended bereits ausführen.
Eine sichere Reihenfolge für einen ESX Server:
# database and libraries first
ensure oxmysql
ensure ox_lib
# the framework
ensure es_extended
ensure [esx]
# everything else after
ensure [scripts]
ensure my_scriptAchten Sie auf Ordner-Kategorien wie [scripts]: ensure [scripts] startet alles darin. Wenn diese Zeile also vor ensure es_extended steht, startet jedes Skript darin zu früh.
Sie können das Skript auch selbst auf ESX warten lassen, indem Sie die Abhängigkeit in seinem fxmanifest.lua:
dependency 'es_extended'FiveM startet dann zuerst es_extended oder weigert sich, das Skript zu starten, wenn es fehlt.
2. es_extended konnte nicht gestartet werden
Wenn es_extended beim Start abstürzt, sind seine Exporte nie vorhanden. Scrollen Sie in der Serverkonsole nach oben und suchen Sie nach roten Linien von es_extended vor dem Fehler Ihres Skripts. Die üblichen Übeltäter:
- Die Datenbank. oxmysql kann keine Verbindung herstellen (ein falsches Passwort, eine Datenbank, die nicht existiert, MySQL läuft nicht). Aktivieren Sie
mysql_connection_stringin Ihremserver.cfg:
set mysql_connection_string "mysql://user:password@localhost/es_extended?charset=utf8mb4"- Eine fehlende Abhängigkeit. Aktuelle ESX Legacy Builds müssen vor ihnen mit oxmysql und ox_lib gestartet werden.
- Fehlende Tabellen. Eine Neuinstallation ohne die importierten ESX SQL stürzt bei der ersten Abfrage ab.
Beheben Sie den ersten Fehler und der Exportfehler verschwindet damit.
3. Der Ordner heißt nicht es_extended
Der Export befindet sich in einer Ressource mit dem Namen genau es_extended. Diese machen es kaputt:
- Der Ordner wurde umbenannt (
es_extended-legacy,es_extended_main…); - Es gibt zwei Kopien von es_extended in verschiedenen Ordnern und die falsche startet;
- auf einem Linux-Host hat der Name unterschiedliche Großbuchstaben (
ES_Extended): Linux unterscheidet zwischen Groß- und Kleinschreibung, Windows nicht.
Durchsuchen Sie Ihren Ordner resources nach fxmanifest.lua Dateien in Ordnern namens es_extended und behalten Sie genau eine.
4. Sie haben es_extended neu gestartet, während der Server lief
restart es_extended von der Konsole sieht harmlos aus, aber jedes Skript, das bereits das ESX-Objekt verwendet hat, behält das alte, und alles, was den Export während des Neustarts aufruft, erhält diesen Fehler. Nachdem Sie es_extended berührt haben, starten Sie den gesamten Server neu oder starten Sie zumindest die ESX-Skripte danach neu.
5. Der Server ist überhaupt nicht ESX
Wenn Ihr Server QBCore oder QBox ausführt, gibt es kein es_extended und ein reines ESX-Skript schlägt genau so fehl. Suchen Sie in der Konfiguration des Skripts nach einer Framework-Option oder verwenden Sie eine für Ihr Framework erstellte Version. Das QBCore-Äquivalent dieses Fehlers wird im Versuch, einen nil-Wert zu indizieren (global 'QBCore') behandelt.
Überprüfe es in zehn Sekunden
In der Serverkonsole:
ensure es_extendedWenn es_extended sauber startet und der Fehler weiterhin besteht, handelt es sich um die Startreihenfolge. Wenn Fehler ausgegeben werden, beheben Sie diese zuerst. Dann:
restart my_scriptWenn das Skript jetzt ohne Fehler startet, verschieben Sie es ensure nach unten es_extended in server.cfg, damit es auch nach einem Neustart funktioniert.
Zusammenfassung
| Ursache | Wie Sie es bemerken | Behebung |
|---|---|---|
| Bestellung starten | Funktioniert nach restart my_script |
ensure es_extended über dem Skript oder dependency 'es_extended' |
| es_extended ist abgestürzt | Rote es_extended Linien über dem Fehler | Reparieren Sie die Datenbank oder die fehlende Abhängigkeit |
| Falscher Ordnername | ensure es_extended sagt, dass es nicht gefunden werden kann |
Genau ein Ordner namens es_extended |
| Live-Neustart | Fehler direkt nach restart es_extended |
Starten Sie den Server neu |
| Kein ESX Server | Überhaupt kein es_extended | Verwenden Sie die QBCore / QBox-Version des Skripts |
Kurze Antworten
Was bedeutet 'No such export getSharedObject in resource es_extended'?
Ihr Skript hat exports['es_extended']:getSharedObject() aufgerufen, während es_extended nicht ausgeführt wurde: Es wurde noch nicht gestartet, konnte nicht gestartet werden oder es hat einen anderen Ordnernamen.
Wie sorge ich dafür, dass es_extended vor meinem Skript startet?
Fügen Sie ensure es_extended über dem Skript in server.cfg ein, nach oxmysql und ox_lib. Das Hinzufügen von dependency 'es_extended' zum fxmanifest des Skripts bewirkt auch, dass FiveM zuerst es_extended startet.
Kann ich es_extended neu starten, während der Server läuft?
Es ist keine gute Idee: Jede Ressource, die das ESX-Objekt enthält, behält das alte. Starten Sie den gesamten Server neu oder starten Sie die Skripts, die ESX verwenden, nach es_extended neu.
Scripts ohne dieses Problem
Advanced BoostingFahrzeug-Boosting per Tablet: Aufträge von Klasse D bis S+, Crews und eine Live-Warteschlange.Script ansehen →
CCTV Security CamerasPlatzierbare Kameras, ein Live-Tablet mit Multi-View und ausgedruckte Beweisfotos.Script ansehen →
Crypto MiningKauf eine Lagerhalle, bau Rigs Teil für Teil und mine Coins auf einem Markt, der sich bewegt.Script ansehen →