0

私は本当にここで助けが必要です、私は基本的に正しい言語をロードするために正しいロケールプロパティファイルをロードするバンドルを持っています。

現在、これらのファイル、FlashcardsMessages_es.properties、FlashcardsMessages_de.propertiesはフラグメントとして個別のパッケージに含まれていますが、何らかの理由で、バンドルがフラグメントを検出していないようです。

java.util.MissingResourceException: Can't find bundle for base name de.tud.cs.se.flashcards.ui.FlashcardsMessages, locale es_MX
  at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
  at java.util.ResourceBundle.getBundleImpl(Unknown Source)
  at java.util.ResourceBundle.getBundle(Unknown Source)
  at de.tud.cs.se.flashcards.ui.Messages.getMessage(Messages.java:65)

これは私が得たエラーです。

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: FlashCardOSGiED
Bundle-SymbolicName: FlashCardOSGiED
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: Activator
Export-Package: .,
 de.tud.cs.se.flashcards.model,
 de.tud.cs.se.flashcards.model.learning,
 de.tud.cs.se.flashcards.model.learning.basic,
 de.tud.cs.se.flashcards.persistence,
 de.tud.cs.se.flashcards.ui,
 de.tud.cs.util
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Import-Package: javax.imageio,
 javax.swing,
 javax.swing.border,
 javax.swing.event,
 org.osgi.framework,
 org.osgi.util.tracker

これは私のバンドルのマニフェストです

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: LocaleFragment
Bundle-SymbolicName: LocaleFragment;singleton:=true
Bundle-Version: 1.0.0.qualifier
Fragment-Host: FlashCardOSGiED
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Export-Package: de.tud.cs.se.flashcards.ui

そして、これは私のフラグメントのマニフェストです。

誰かが私に何が間違っているのかを教えてくれるとしたら、それは素晴らしいことです。

編集:私は問題を見つけたので、コンパイラの実行時にeclipseまたはjavaはプロパティファイルや画像ファイルなどのリソースをjar内に配置しません。したがって、私の解決策は、プロパティファイルを「classes」フォルダ内に配置し、eclipseをコンパイルした後に配置することでした。 jarファイル内にファイルを正しく配置しました。私はこれを他のいくつかのウェブサイトで見つけましたが、ここでの提案のいくつかは私にその方向を調べるように促したので、どうもありがとう。

4

1 に答える 1

0

ホスト バンドルで更新を試みます。

フラグメントがホストにアタッチされている場合、フラグメント バンドル内にリソースをパッケージ化した方法、またはホスト コードでリソースへのパスを設定した方法が原因である可能性があります。

于 2012-07-06T12:14:56.577 に答える