فصل DLL والمكالمة الأصلية في مكون إضافي مختلف
-
19-08-2019 - |
سؤال
أريد فصل بعض ملفات DLL عن فئات JNI الأصلية المرتبطة بها.
الإضافات:
- في المكون الإضافي ، يتم وضع DLLs وتحميلها عند تحميل المكون الإضافي.
- في المكون الإضافي B (يعتمد على أ) يتم وضع فئات JNI والتي تتضمن استدعاء الطريقة الأصلية ل DLLs في A.
في وقت التشغيل أحصل على UnsatisfiedLinkError لأنه لا يمكن العثور على فئة JNI.أحاول تحديث منطق أداة تحميل الفصل عن طريق تحديث ملفات البيان:
البرنامج المساعد أ:
Eclipse-BuddyPolicy: registered
البرنامج المساعد ب:
Eclipse-RegisterBuddy: A
ولكن هذا أيضا لا يعمل.هل تعرف الحل؟
يحرر:
البيان أ:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: xxx ;singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: xxx.Plugin
Bundle-Vendor: xxx
Bundle-Localization: plugin
Bundle-NativeCode: native/dll/x1.dll;
native/dll/x2.dll;
native/dll/x3.dll;
native/dll/x4.dll;
native/dll/x5.dll;
native/dll/x76.dll;
native/dll/x.dll;
native/dll/x7.dll;osname = win32; processor = x86
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.ui,
org.apache.commons.logging
Bundle-ClassPath: .
Eclipse-AutoStart: true
Eclipse-LazyStart: true
Bundle-ActivationPolicy: lazy
Eclipse-BuddyPolicy: registered
Export-Package: xxx
البيان ب:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: xxx;singleton:=true
Bundle-Version: 2.1.16
Bundle-Vendor: xxx
Bundle-Localization: plugin
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.ui,
org.apache.commons.lang,
org.apache.commons.logging,
A
Export-Package: xxx
Bundle-ClassPath: .
Bundle-Activator: xxx
Eclipse-RegisterBuddy: A
Eclipse-AutoStart: true
Eclipse-LazyStart: true
Bundle-ActivationPolicy: lazy
المحلول
اقتراحي المباشر هو تحويل المكون الإضافي B إلى جزء من المكون الإضافي A بدلاً من مكون إضافي منفصل، مما سيؤدي إلى حل المشكلات.
ومع ذلك، أعتقد أنك قد غيرت بياناتك؛يجب أن يكون البرنامج المساعد B الذي يحاول إجراء مكالمات JNI Eclipse-BuddyPolicy:registered
, ، ويجب أن يعتمد المكون الإضافي A على المكون الإضافي B ويسجل فيه.
وقيل بعد القراءة مستندات تحميل الأصدقاء, ، لست متأكدًا من أن سياسة تحميل الأصدقاء تعمل مع ملفات فئة غير Java.