Подтвердить что ты не робот

Пакет XYZ не может быть разрешен. Причина: Отсутствие ограничений: Import-Package: ABC; version = "1.0.0" ошибка в автономном автономном режиме RCP

Я работаю над автономной безголовой RCP. Он работает без проблем, когда я запускаю приложение и продукт в eclipse IDE, но когда я его экспортирую и выполняю, я получил эту ошибку в файле журнала.

enter image description here

!ENTRY org.eclipse.equinox.ds 4 0 2013-01-16 13:27:59.132
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: The bundle "org.eclipse.equinox.ds_1.4.0.v20120522-1841 [3]" could not be resolved. Reason: Missing Constraint: Import-Package: org.eclipse.equinox.internal.util.event; version="1.0.0"
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1332)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1316)
...

!ENTRY org.eclipse.equinox.ds 4 0 2013-01-16 13:28:00.901
!MESSAGE [SCR] Exception while activating instance [email protected]6157 of component org.eclipse.e4.ui.css.swt.theme  
!STACK 0
java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Display
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)

Ссылаясь на этот пост, я понимаю, что у меня есть более новая версия плагина без его зависимостей, и есть что-то неправильно в пути выполнения. Однако я точно не знаю, что может вызвать эту ошибку.

Что может быть неправильным? Почему у меня есть эта ошибка, только когда я выполняю ее как автономную?

ADDED

У меня есть файл build.properties

output.. = bin/
bin.includes = META-INF/,\
               plugin.xml,\
               .
source.. = src/

Это файл MANIFEST.MF

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Refactorer
Bundle-SymbolicName: edu.utexas.seal.refactorer;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: edu.utexas.seal.refactorer.Activator
Bundle-Vendor: PROSSEEK
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
 org.eclipse.jdt;bundle-version="3.8.0",
 org.eclipse.jdt.core;bundle-version="3.8.2",
 org.eclipse.core.resources;bundle-version="3.8.1",
 org.eclipse.text;bundle-version="3.5.200",
 org.eclipse.jdt.ui;bundle-version="3.8.1",
 org.eclipse.jdt.core.manipulation;bundle-version="1.5.0",
 org.eclipse.ltk.ui.refactoring;bundle-version="3.7.0",
 org.eclipse.jdt.core.manipulation;bundle-version="1.5.0",
 org.eclipse.ltk.core.refactoring;bundle-version="3.6.0",
 org.eclipse.jface.text;bundle-version="3.8.1",
 org.eclipse.core.expressions;bundle-version="3.4.401",
 org.eclipse.core.externaltools;bundle-version="1.0.100",
 org.eclipse.jface;bundle-version="3.8.101",
 edu.utexas.seal.utilities;bundle-version="1.0.0",
 org.eclipse.core.filebuffers;bundle-version="3.5.200"
Bundle-ClassPath: .
Export-Package: edu.utexas.seal.refactorer

У меня есть только один элемент: "." в Bundle-ClassPath.

4b9b3361

Ответ 1

Отсутствует org.eclipse.equinox.util

Сначала я перекомпилировал проект, а затем проверил, что у меня есть все необходимые плагины из жалоб в файле журнала, а затем я обнаружил, что мне не хватает org.eclipse.equinox.util, я думаю, он должен был быть включен автоматически. После включения некоторые из ошибок просто исчезли, и я обнаружил, что у меня еще две ошибки.

enter image description here

Проблема среды выполнения

Я устанавливаю "среду выполнения" как JavaSE-1.5, и это было проблемой, поскольку Java не могла распознать @Override, чтобы вызвать ошибки "Обязательно переопределить метод суперкласса".

enter image description hereenter image description here

Я получил подсказку с этого сайта.

"Необходимо переопределить метод суперкласса" Ошибки после импорта проекта в Eclipse

Уровень выполнения

Мне также пришлось изменить файл /ECLIPSE/configuration/config.ini.

[email protected]:start,[email protected]:
start,[email protected] <-- (From 2 to 3) 
:start,[email protected]

Я не знаю, ошибка ли это затмения или нет, я получил подсказку этого сайта.

Некоторые советы, которые я нашел полезными

  • -consoleLog был действительно полезен, так как мне не приходилось открывать файл журнала все время.
  • Эта статья дала мне некоторое направление, как решить проблему.
  • Я предполагаю, что когда Eclipse RCP работает над Eclipse IDE в качестве продукта, мы должны работать с автономным RCP. Если нет, то проблемы должны быть проблемами конфигурации, которые делают разницу между IDE и автономной.

Ответ 2

Существует также возможность добавить отсутствующий пакет через дополнительную конфигурацию зависимостей непосредственно к провальному пакету:

<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
  <dependency-resolution>
   <extraRequirements>
    <requirement>
     <type>eclipse-plugin</type>
     <id>org.eclipse.jface.text</id>
     <versionRange>0.0.0</versionRange>
   </requirement>
  </extraRequirements>
 </dependency-resolution>
</configuration>
</plugin>

Ответ 3

Вам нужно добавить то же самое в файл feature.xml. Как только вы добавите то же самое, очистите проект и попробуйте выполнить повторную сборку. Я уверен, что это решит эту проблему.