5

問題は次のとおりです。

同じパッケージに3つのファイルがあります:com.foobar

これらのファイルのディレクトリは次のとおりです。

C:.. \ mylibrary \ src \ com \ foobar \

中にはfoo.asとbar.asがあります

mxmlc C:.. \ mylibrary \ src \ com \ foobar \ foo.asを実行しようとすると、次のエラーが発生します。

ソースパスで見つかったファイルは、定義のパッケージ'com.foobar'と同じパッケージ構造''である必要があります。

私が言うには、そうです。パッケージはcom.foobarです。構造は../com/foobar/foo.asになります

このエラーに関する他のいくつかのフォーラム投稿をWebで見つけました。ユーザーは、私がすでに持っているパッケージ名と一致するディレクトリを作成する必要があるようでした。私は何が欠けていますか?

あなたが与えることができるどんな助けにも前もって感謝します!

4

6 に答える 6

9

同僚はこれについてかなり長い間私を助けてくれました。次のコマンドを使用する必要がありました。

(を保持するディレクトリx内\src\com\foobar\foo.as

mxmlc -compiler.source-path=.\src -static-link-runtime-shared-libraries=true .\src\com\foobar\foo.as -output .\test.swf

どういうわけか、-source-path私が試したコマンドは満足のいくものではありませんでした。

なぜこのように機能するのか正確にはわかりませんが、今は機能します。これが、actionscriptパッケージをコンパイルしようとして迷子になっている他の人に役立つことを願っています。

于 2010-10-07T20:33:54.000 に答える
1

それがあなたの問題の理由であるかどうかをわざわざ解決することはできませんが、file.mxmlがクラスのfile.asを参照し、file.mxmlが関連して間違ったディレクトリにあったときにそのエラーが発生したことがわかりました.mxmlファイル内のクラス命名に。

したがって、.mxmlファイルが参照する場合の一般的な例

  • MyPackage.Util.MyClassをインポートします;

次に、クラスを含む.asファイルは相対的な位置にある必要があります

  • \ howto \ MyFile.mxml

  • \ howto \ MyPackage \ Util \ MyClass.as

たとえば、コンパイラを呼び出します。..\ bin \ mxmlc MyFile.mxml

上記のシナリオでsource-pathディレクティブを使用しようとすると、とにかくサブディレクトリがすでに含まれていると文句を言うと思います。

于 2011-12-01T19:54:26.477 に答える
0

ここでは、com.foo、com.foobar、com.pluploadの3つの異なるパッケージについて言及しましたが、3つすべてに対して1つのディレクトリパスがあるようです:\ com\foobar。これらのクラスがディレクトリ\com\ foobar \にある場合は、すべてパッケージをcom.foobarとして宣言する必要があります。パッケージ名とディレクトリパスは一致する必要があります。一致しないと、説明した不一致エラーが発生します。結論:パッケージ名とディレクトリパスは事実上同義です。

于 2010-10-07T19:05:22.307 に答える
0

正しいフォルダ構造を持つことに加えて、ファイル名とクラスの名前を逐語的に一致させる必要もあります。これは、クラス名が実際にFooである場合、foo.asはFoo.asである必要があることを意味します。

于 2011-06-02T23:46:11.893 に答える
0

FlashBuilderのクイックヒント。

air / flexまたはその他のバックグラウンドパッケージを変更した場合、または新しいSDKを追加して、それを機能させるためにファイルの再配置を行う必要がある場合は、再コンパイルするか、FlashBuilderにファイルを更新させる必要があります。アトラス。

srcフォルダーまたはデフォルトパッケージがエラーでいっぱいの場合の最も一般的な問題は、FlashBuilderがそれらの参照を移動したことです。

デフォルトのパッケージファイル(.asまたはmxmlなど)を右クリックして[デフォルトアプリケーションとして設定]を選択すると、問題が解決する場合があります。それがうまくいかない場合は、次の場所に移動する必要があります。

Project > Properties > ActionScript Build Path 

下部にメインソースフォルダボックスがあります。それが空の場合は、「src」またはすべてのパッケージファイル(.asなど)を含むソースフォルダーを呼び出す名前を入力するだけです。

デフォルトのパッケージ/ファイルにまだエラーが表示されている場合(つまり、ソースパスで見つかったファイルは、定義のパッケージと同じパッケージ構造「src」である必要があります)

に行くProject > Properties > ActionScript Compiler

使用しているFlexSDKのバージョンを確認してください。[デフォルト]ボタンが選択されている場合は、[特定のSDKを使用する]を選択して、リストされている内容を確認してください。通常は1つだけをリストし、Flex4.6.0などのようなものを読み取ります。その名前をメモし、ハードドライブでflex-sdk-description.xmlを検索します。これは通常、次の場所にあります。

Adobe > Adobe Flash Builder 4.6(or your current version) > sdks > Flex 4.6.0(フラッシュビルダーと同じ名前)。

そのファイルを開くと、flex-sdk-description.xml 右クリックまたは強調表示して、メモ帳(ウィンドウ)で開くことを選択します。長い列ができます。<name>Something written here</name> これは、Flash Builder Flex SDKの選択と同じ名前である必要があります(1秒前に発見しました)。<name>Flash Builderで特定のSDKまたは拡張機能を使用するには、これを変更する必要がある場合があります。これは私があなたを助けることができないところです、そしてあなたはこれ<name>がFlex4.6.0またはあなたが使っているflexのどんなバージョンであることを確認する必要があります。Flex 4.6.0(Air3.6)またはその他の機能がある場合は、adobeまたはsdk/extensionの作成者に連絡して何ができるかを確認する必要があります。

最後に、[プロジェクト]>[プロパティ]>[ActionScriptビルドパス]の[出力]セクションを確認します。デフォルトの出力はbin-debugです。これを事前に具体的に変更しなかった場合、デフォルトでは次のようになります。bin-debug

幸運を!

于 2013-02-21T21:14:41.130 に答える
0

'.actionScriptProperties'ファイル内のすべてのタグを確認してください。フォルダをコピーして移動した場合は、ここで確認する必要があります。私の場合、変更元:

于 2015-05-14T12:21:22.020 に答える