Es scheint nur eine andere Frage dieser Art zu geben, here, aber die von dieser Antwort vorgeschlagene Lösung war für mich nicht effektiv . Ich verwende Spring Tool Suite (im Wesentlichen Kepler 4.3.2 SR2) als meine IDE, um ein OSGi-Fragment zu entwickeln, das die neueste Version von nativem C++ - Code enthält. Die Fragmente existieren, um die Möglichkeit verschiedener Versionen von Software zu ermöglichen, die in verschiedenen Umgebungen existieren, in die dieser native Code integriert werden soll."Unzufriedener nativer Codefilter" -Fehler beim Versuch, OSGi-Fragment in Eclipse mit benutzerdefiniertem vm zu exportieren
Allerdings kann ich dieses Fragment nicht exportieren, anscheinend aufgrund einer benutzerdefinierten vm arg, die wir verwenden, um diese Versionsnummer darzustellen.
Das Manifest sieht ungefähr so aus:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Windows 64-bit support for Third-Party XYZ 4.12.7
Bundle-SymbolicName: com.ourcompany.oursoftwarepackage.xyz.win64xyz4127
Bundle-Version: 8.6.2.qualifier
Bundle-Vendor: OurCompany
Fragment-Host: com.ourcompany.oursoftwarepackage.xyz
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Eclipse-PlatformFilter: (& (osgi.os=win32) (osgi.arch=x86_64))
Bundle-NativeCode: xyzintegration.dll; selection-filter = "(oursoftwarepackage.xyzVersion=4.12.7)"
Bundle-ClassPath: .
Der Fehler sagt:
Verarbeitung Aufnahme von Feature org.eclipse.pde.container.feature: Bundle com.ourcompany.oursoftwarepackage .xyz.win64xyz4127_8.6.2.qualifier konnte nicht aufgelöst werden: Unzufriedener nativer Codefilter: xyzintegration.dll; selection-filter = "(oursoftwarepackage.xyzVersion = 4.12.7)".
Wenn ich die Auswahlfilterklausel entferne, scheint es zu exportieren, aber es wird kein tatsächliches Artefakt erzeugt.
Der Vorschlag, den ich aus der Verbindung oben hochgerechneten war die vmarg
-Doursoftwarepackage.xyzVersion=4.12.7
im Plug-in-Entwicklung Zielumgebung aufzunehmen. Dies schien jedoch den OSGi-Rahmen nicht zu erfüllen. Jetzt bin ich ratlos, wie ich das Fragment lösen kann, damit der Export fortfahren kann.
Sie sagen, dass Sie die vmarg in Ihrem PDE Ziel hinzugefügt Umgebung. Was bedeutet das? Verwenden Sie dieses vmarg beim Starten Ihrer Anwendung? –
In der Zielumgebung gibt es eine Einstellung für vmargs. Ich habe dort das benutzerdefinierte Argument hinzugefügt. –