Android Studioのimlファイルとは何ですか?


186

Android Studioプロジェクトのimlファイルとは何ですか?モジュールの設定ファイルだそうです。私はそれがどのように機能するのか理解しておらず、gradleスクリプトを使用してプロジェクトに追加する外部モジュールと統合することはできません。

また、ほとんどの場合、ASがそれらを生成するため、プロジェクトの動作を制御できません。EclipseやASのような別のIDEで作業するチームがある場合、IDEに依存しないようにプロジェクトを設定できますか?

このシステムの仕組みがよくわかりません。

回答:


172

Android Studioプロジェクトのimlファイルとは何ですか?

Google検索がオンにiml fileなります:

IMLは、Javaアプリケーションの開発に使用されるIDEであるIntelliJ IDEAによって作成されたモジュールファイルです。これには、Java、プラグイン、Android、またはMavenコンポーネントなどの開発モジュールに関する情報が格納されます。モジュールのパス、依存関係、およびその他の設定を保存します。

このページから)

Gradleスクリプトを使用して、プロジェクトに追加する外部モジュールと統合しないのはなぜですか。

「gradleスクリプトを使用して外部モジュールと統合する」か、独自のモジュールを使用します。

ただし、GradleはIntelliJ IDEAのネイティブプロジェクトモデルではありません— .imlファイルと.idea/ディレクトリのメタデータに保持されている独立したものです。Android Studioでは、そのようなものは主にGradleビルドスクリプトから生成されますbuild.gradle。そのため、などのファイルを変更すると、「プロジェクトをGradleファイルと同期する」ように求められる場合があります。また、.imlファイルの.idea/内容が再生成されるため、ファイルを入れたりバージョン管理をしたりする必要がありません。

EclipseやASなどの別のIDEで作業するチームがある場合、プロジェクトIDEに依存しないようにする方法はありますか?

大部分はできません。

Eclipseスタイルのディレクトリ構造を使用するAndroidプロジェクト(プロジェクトのルートディレクトリのリソースとマニフェストなど)を用意してください。Gradleに、build.gradleその構造でファイルを検索する方法を教えることができます。ただし、他のメタデータ(compileSdkVersion、依存関係など)は、それほど簡単には複製されません。

他の選択肢は次のとおりです。

  • 皆を、EclipseとAndroid Studioの両方に等しく統合されている(視点によっては統合されていない)Mavenなどの別のビルドシステムに移動します。

  • Andmoreがすぐに離陸して、GradleビルドスクリプトからAndroidプロジェクトをビルドできるEclipse IDEを入手できることを願っています

  • 全員に1つのIDEを使用させる


1
imlファイルを削除するとどうなりますか?大丈夫でしょうか?
Eプレイス

1
@ E-Place:Android Studioを使用している場合、通常はプロジェクトをインポートして、Android Studioで再生成する必要があります。これがないと、Android Studioは機能しません。
CommonsWare 2016

imlはどのように作成できますか?私は4つ以上のimlファイルを持っています
E-Place

@ E-Place:通常、.imlプロジェクトルートに1つの.imlファイルと、各モジュールディレクトリに1つのファイル(例:)がありapp/ます。ツール> Android> Sync Project with Gradle Filesを試してみてください。それ以外の場合は、プロジェクトを再インポートする必要があります。この領域でさらに懸念がある場合は、スタックオーバーフローに関する新たな質問をしてください。
CommonsWare 2016

1
を使用して、または類似のファイルを配布/同期している場合、少なくともファイルとディレクトリに関して、すべてのユーザーに同じIDEを使用させることができます。については、@ Pavel Synekが示唆しているように、同期したくないファイルがファイル内で参照されていることを確認してください。あなたは、ローカルにそれらを復元/リポジトリおよび再生成からそれらを削除する必要がありますが、それはただだ、と。*.iml.idea/gitgit.gitignoremvgit commitmv
サラ・メッサー

76

.ideaおよび*.imlに追加すると.gitignore、プロジェクトを正常にインポートしてコンパイルするためにこれらのファイルは必要ありません。


16
わかりましたが、それらは何ですか?どのように機能し、どのような影響がありますか?私は別のプロジェクトのソースを調べていますが、たとえばgigyaの場合、そこにのみ存在するimlファイルにモジュールがあり、マニフェスト以外の他の場所にはそれが表示されません。それで、そのモジュールはプロジェクトに存在しますか?
shadox

3
.idea全体として決して無視されるべきではありません。これには、lintルールやカスタム辞書などのいくつかのファイルが含まれています。これらのファイルは、チームがバージョン管理にチェックインしたいものです。
M-Pixel

2
これは質問に答えようとさえしません。
デイジー

12

これらは、モジュール情報とメタデータを保持するプロジェクトファイルです。

に追加*.imlするだけ.gitignoreです。

Android Studioの場合:CTRL+ F9キーを押してプロジェクトを再ビルドします。不足している*.imlファイルが生成されます。


2

これらのファイルは、Android Studioエディターによって作成および使用されます。

これらのファイルをバージョン管理するためにチェックインする必要はありません。

Gitは、ファイルとディレクトリのリストを含む.gitignoreファイルを使用して、チェックインする必要のないファイルとディレクトリのリストを認識します。

Android Studioは、バージョンコントロールにチェックインする必要のないすべてのファイルとディレクトリをリストした.gitingnoreファイルを自動的に作成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.