1

フラグメントプロジェクトを使用して、サードパーティのEclipseプラグインを拡張しようとしています。主な理由は、サードパーティのプラグインにデフォルト(パッケージ)修飾子を持つクラスが含まれており、それらを拡張する必要があるためです。

したがって、私の拡張機能クラスはまったく同じパッケージに配置する必要があります。同じパッケージを含むフラグメントプロジェクトを作成し、クラスをその中に入れます。ランタイムワークスペースを使用している場合、すべてが正常に機能します。

ただし、フラグメントをデプロイしようとすると(たとえば、Eclipseディストリビューションのdropinsフォルダーにデプロイしようとすると)、コードを実行できません。拡張機能などは正常に機能します(たとえば、新しい実行構成に拡張機能を使用します。ただし、この実行構成をインスタンス化しようとすると、サードパーティのルートプラグインがクラスをロードできなかったというエラーメッセージが表示されます。構成タブグループを表示します。

この種の問題の経験はありますか?

4

3 に答える 3

1

申し訳ありませんが、それはうまくいきません。ホスト バンドルが特別に作成されていない限り、ホスト内のクラスをフラグメントからオーバーライドすることはできません。その理由は、リソース (クラスを含む) がフラグメントの前にホストから取得されるためです。

org.eclipse.osgi.baseadaptor.loader.ClasspathManager実装については、を参照してください。

于 2012-06-06T12:14:33.590 に答える
0

実際、これは私が使用している拡張コードです。

<extension point="org.eclipse.debug.ui.launchConfigurationTabGroups">
  <launchConfigurationTabGroup
    class="com.android.ide.eclipse.adt.internal.launch.jouleunit.AndroidJouleUnitTabGroup"
    id="com.android.ide.eclipse.adt.jouleunit.AndroidJouleUnitLaunchConfigTabGroup"
    type="com.android.ide.eclipse.adt.jouleunit.launchConfigurationType">
  </launchConfigurationTabGroup>

もちろん、起動構成タイプなどを定義する拡張機能は他にもありますが、これは Eclipse が見つけられないクラスにつながるものです。

于 2012-06-07T07:29:42.593 に答える
0

実際、私は自分自身のために今問題を見つけました。問題は、フラグメント JAR から Java バイト コードを除外する間違った構成のビルド プロパティ ファイルでした。クラスは JAR にありましたが、間違ったサブディレクトリにあったため、非常にかゆくなりました。

于 2012-06-08T10:25:30.863 に答える