Android-パッケージAAR手順と最も重要な注意事項!
2479 ワード
概要
最近、プロジェクトの要求で、開発したモジュールをaarにパッケージ化し、他のプロジェクトの呼び出しに供する必要があります.しばらくしてから、ここに注意すべき点がたくさんあることに気づきました.だから、記録して、回り道をしないでください.
まずaarパッケージとは何ですか?
JArとaarの簡単な違い: *.JAr:classファイルとリストファイルのみが含まれており、ピクチャなどのすべてのres内のファイルなどのリソースファイルは含まれていません. *.aar:すべてのリソース、classおよびresリソースファイルを含む 新しいエンジニアリング(依存なし)でAARをパッケージ化するには
1.新しいLibrary
そしてnext+finishで新規作成に成功しました
パッケージするファイルをフォルダの場所に従ってModuleに入れ、build->Make Moudle appを直接クリックしてパッケージに成功すると、対応するパスの下でaarが生成されます.
もちろん、これらは私たちが必要としないはずです.開発プロジェクトには必ず依存しているからです.しかも空のプロジェクトではないに違いない.
成形されたプロジェクト(依存)はAARを迅速にパッケージ化する方法
プロジェクトに新しいModuleを直接コピーしてから、プロジェクトをModuleにコピーしたり、現在のプロジェクトを再コピーしたりして、コピーしたプロジェクトで直接AARに変更することができます.
2つ目は、コピー項目を直接AARに変更することです.私たちは以下の変更が必要です.1.appの下のbulid gradleファイルを修正する:apply plugin:'com.android.Application'をapply plugin:'comに変更します.android.library'
2.注記defaultConfigでのアプリケーションID
3.AndroidManifest.xmlファイル、アプリケーションの変更
そしてコメント調が最初に起動したActivityが起動したaction
4.もしあなたが自分でApplicationをカスタマイズしたら、取り除く必要があります.AARにはApplicationがないので、問題が来ました.私たちはもともとApplicationの初期化コードをどうしますか.これは簡単で、私たちは単独でOptionsクラスを書いて、呼び出し者に提供して、彼にアプリケーションに伝えて、このクラスの中でいくつかの初期化操作をすることができます.
呼び出し者は彼のアプリケーションにアプリケーションを転送します.
そして直接build->Make Moudle appでaarを生成できます!
注意事項
1.主プロジェクトはAARに依存するリモートライブラリに依存する必要があります.そうしないとClassNotFound異常が発生します.ここでは依存ライブラリのバージョンが競合する可能性があります.これは調整する必要があります.
2.リソースネーミングは、ピクチャリソース、string、color、dimens、layoutなど、すべてのプロジェクト名の接頭辞を付けることが望ましい.どうせresディレクトリの下のすべてのファイルは、ホストappの下のリソースと重複することを防止するために、統一された接頭辞を使用することが望ましい.aarリファレンスはソースコードリファレンスと同じ効果を発揮するため、すべてのリソース重複リファレンスの問題が発生しやすいため、接頭辞を付ける必要がある.
3.aarパッケージに微信支払い、共有などのサードパーティライブラリがある場合は、メインエンジニアリングで使用する必要があります.gradleにアプリケーションIdを置き換えるか、メインエンジニアリングのパッケージ名とkeyでサードパーティ操作のkeyとidを取得して共有することを例にとると、リストファイルの共有KEYがメインプロジェクトのbuild gradleファイルの共有KEYと異なる場合は、リストファイルが異常になります.
4.butterknifeは8.4.0以上のバージョンを統一する必要があります.そうしないと、エラーが発生します.私の提案によれば、使わないほうがいいです.そうしないと、あなたの気持ちがいいですよ.5.aarのMyApplictionでクラスのマネージャを使用している場合は、aarにパッケージ化する際にコードを抽出して独立したクラスマネージャにする必要があります.aarにパッケージ化した後、アプリケーションに関連するすべてのものが交換され、空指針異常が発生しないようにすることを覚えておいてください.6.AARモジュール用butterknifeは、リソースRをR 2(一括置換)7に変更する必要がある.レイアウトファイルの名前を変更しないでください.そうしないと、Idの例外が見つかりません.
今日はここまで分析して、次は新しい内容を続けます!
最近、プロジェクトの要求で、開発したモジュールをaarにパッケージ化し、他のプロジェクトの呼び出しに供する必要があります.しばらくしてから、ここに注意すべき点がたくさんあることに気づきました.だから、記録して、回り道をしないでください.
まずaarパッケージとは何ですか?
JArとaarの簡単な違い:
1.新しいLibrary
そしてnext+finishで新規作成に成功しました
パッケージするファイルをフォルダの場所に従ってModuleに入れ、build->Make Moudle appを直接クリックしてパッケージに成功すると、対応するパスの下でaarが生成されます.
もちろん、これらは私たちが必要としないはずです.開発プロジェクトには必ず依存しているからです.しかも空のプロジェクトではないに違いない.
成形されたプロジェクト(依存)はAARを迅速にパッケージ化する方法
プロジェクトに新しいModuleを直接コピーしてから、プロジェクトをModuleにコピーしたり、現在のプロジェクトを再コピーしたりして、コピーしたプロジェクトで直接AARに変更することができます.
2つ目は、コピー項目を直接AARに変更することです.私たちは以下の変更が必要です.1.appの下のbulid gradleファイルを修正する:apply plugin:'com.android.Application'をapply plugin:'comに変更します.android.library'
2.注記defaultConfigでのアプリケーションID
3.AndroidManifest.xmlファイル、アプリケーションの変更
そしてコメント調が最初に起動したActivityが起動したaction
4.もしあなたが自分でApplicationをカスタマイズしたら、取り除く必要があります.AARにはApplicationがないので、問題が来ました.私たちはもともとApplicationの初期化コードをどうしますか.これは簡単で、私たちは単独でOptionsクラスを書いて、呼び出し者に提供して、彼にアプリケーションに伝えて、このクラスの中でいくつかの初期化操作をすることができます.
呼び出し者は彼のアプリケーションにアプリケーションを転送します.
そして直接build->Make Moudle appでaarを生成できます!
注意事項
1.主プロジェクトはAARに依存するリモートライブラリに依存する必要があります.そうしないとClassNotFound異常が発生します.ここでは依存ライブラリのバージョンが競合する可能性があります.これは調整する必要があります.
2.リソースネーミングは、ピクチャリソース、string、color、dimens、layoutなど、すべてのプロジェクト名の接頭辞を付けることが望ましい.どうせresディレクトリの下のすべてのファイルは、ホストappの下のリソースと重複することを防止するために、統一された接頭辞を使用することが望ましい.aarリファレンスはソースコードリファレンスと同じ効果を発揮するため、すべてのリソース重複リファレンスの問題が発生しやすいため、接頭辞を付ける必要がある.
3.aarパッケージに微信支払い、共有などのサードパーティライブラリがある場合は、メインエンジニアリングで使用する必要があります.gradleにアプリケーションIdを置き換えるか、メインエンジニアリングのパッケージ名とkeyでサードパーティ操作のkeyとidを取得して共有することを例にとると、リストファイルの共有KEYがメインプロジェクトのbuild gradleファイルの共有KEYと異なる場合は、リストファイルが異常になります.
4.butterknifeは8.4.0以上のバージョンを統一する必要があります.そうしないと、エラーが発生します.私の提案によれば、使わないほうがいいです.そうしないと、あなたの気持ちがいいですよ.5.aarのMyApplictionでクラスのマネージャを使用している場合は、aarにパッケージ化する際にコードを抽出して独立したクラスマネージャにする必要があります.aarにパッケージ化した後、アプリケーションに関連するすべてのものが交換され、空指針異常が発生しないようにすることを覚えておいてください.6.AARモジュール用butterknifeは、リソースRをR 2(一括置換)7に変更する必要がある.レイアウトファイルの名前を変更しないでください.そうしないと、Idの例外が見つかりません.
今日はここまで分析して、次は新しい内容を続けます!