2

私はEclipseでAndroidアプリに取り組んできましたが、徐々に複雑さが増し、パッケージエクスプローラーで個々のクラスを見つけるのが難しくなりました。

Javaは私の強みではありません。私は、Visual Studio / C Sharpのバックグラウンドを持っているので、最初に考えたのは、Visual Studioで新しいコードフォルダーを作成するのと同じように、クラスの論理グループを新しいパッケージに移動することでした。

新しいパッケージcom.mycompany.myapp.activitiesを作成し、すべてのActivity.javaファイルをここにドラッグしました。

全体がかなりうまくいかず、大量のインポートエラーが発生したり、リソースの構築に失敗したりしました。自動リファクタリングツールは、私のマニフェストファイルもかなりひどく台無しにしました。それがそのように機能するように設計されているようには見えません-私はそれらをすべて元に戻すことになり、それを修正するために2時間を無駄にしました。

だから私の質問は、Eclipseには新しいパッケージを作成せずに.javaファイルを論理サブフォルダーに編成する方法がありますか?「データモデル」用、「アクティビティ」用、「インターフェース」用などのフォルダを作成したいと思います。

どうすればこれを行うことができますか?それとも私はこれを間違った方法で考えていますか?

4

1 に答える 1

3

だから私の質問は、Eclipseには新しいパッケージを作成せずに.javaファイルを論理サブフォルダーに編成する方法がありますか?

AFAIK、いいえ。コードをパッケージに移動することに関連するものを修正する必要があります。

大量のインポートエラーが発生しました

アプリR.javaはアプリケーションパッケージ(com.mycompany.myapp)に生成され、同じパッケージ内のすべてのクラスはR自動インポートを介して取得されます。他のパッケージにあるコードは、そのクラスをインポートする必要があります(例:)import com.mycompany.myapp.R。したがって、アプリのパッケージからサブパッケージにクラスをリファクタリングする場合は、インポートを追加する必要があります。

リソースの構築に失敗しました

リソースはJavaパッケージについて何も知らないので、それはありそうにないようです。しかし、詳細がなければ、具体的な支援を提供することは困難です。

自動リファクタリングツールがマニフェストファイルをかなりひどく台無しにしました

<activity>要素が新しく再パッケージ化されたクラスを指すように、要素を調整する必要があります。再パッケージする他のコンポーネント(サービスなど)についても同様です。それを超えて、詳細がなければ、具体的な支援を提供することは困難です。

そのように機能するように設計されているようには見えません

確かに、アクティビティを他のパッケージに移動することはサポートされています。ADTプラグインがaplombでそのすべての側面を処理するかどうかは別の問題です。ADTプラグインが正しく機能しない具体的な繰り返し可能なシナリオを思いついた場合は、http://b.android.comで問題を報告してください。

于 2012-07-22T16:39:10.113 に答える