問題タブ [apklib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android の依存関係: apklib と aar ファイル
私の理解では、apklib
と共有されるコード + リソースが含まれていますMaven
。
aar
ファイルは によって配布されGradle
ます。
aar
apklib とは主に 1 つの点で異なります。クラスはコンパイルされ、aar のルートにある classes.jar に含まれます。一方apklib
、コンパイル済みのクラス ファイルまたは jar を含めることはできません。
apklib
1 誰かがvsaar
ファイルの主な違いを説明できますか?
2 使えMaven
ますaar
か?使えGradle
ますapklib
か?
3 どのフォーマットが「より良い」ですか?
java - Maven を使用した Android ライブラリ プロジェクトのサポート
Android ライブラリ プロジェクトを作成しており、maven のサポートを追加したいと考えています。ライブラリ プロジェクトの pom ファイルは次のようになります。
私のメイン プロジェクトの pom ファイルは次のようになります。
以下を使用して、ライブラリ プロジェクトをローカル リポジトリにインストールしています。
次に、次を使用してメイン プロジェクトをコンパイルし、ローカル リポジトリにインストールします。
次を使用して apk を生成します。
プロジェクトをmavenでコンパイルすると、問題が発生します。プロジェクトは正常にコンパイルされますが、デバイスで apk を実行しているときに、ライブラリ プロジェクト内のリソースに対して findById を実行しようとすると、NullPointerException が発生します。findById が値を返す場合もありますが、常に正しいタイプであるとは限らないことに注意してください (たとえば、レイアウトが期待されているのにボタンを取得した場合など)。MavenなしでEclipseで実行すると、すべてが完全に機能すると言うことが重要です。
お知らせ下さい
android - 「出力の書き込みに問題があります: フィールド参照が多すぎます: 70185; 最大は 65536 です。 --multi-dex オプションを使用してみてください。」Android プロジェクトのビルド時
私はこのエラーに遭遇し、エラーメッセージのヒットが見つからなかったので、私の仕事を繰り返す問題に直面している他の誰かを救うために思いついた解決策を共有したいと思いました.
(大規模な) アプリケーションで使用する新しい Android ライブラリ (apklib) を作成しているときに、新しいプロジェクトを依存関係として追加すると、dexing 中に次のエラーが発生します。
出力の書き込みに問題があります: フィールド参照が多すぎます: 70185; 最大は 65536
です。 --multi-dex オプションを使用してみてください。
パッケージごとの参照:
<...フィールド数が省略されたパッケージの長いリスト...>
失敗する特定のビルドステップは次のとおりです。
エラー メッセージで推奨されているように使用--multi-dex
することが解決策になる可能性がありますが、私はアプリケーション プロジェクトの所有者ではなく、すでに大規模で複雑なビルド プロセスがあり、それを変更することをためらっています。
この問題は、文字通りフィールドを持たないノーオペレーション テスト ライブラリ プロジェクトで再現できますが、エラー出力には 6000 以上のフィールドがあるとリストされています。エラー出力にリストされたパッケージの中で、同様の 6k+ フィールド カウントを持つ一握りのパッケージがありますが、大部分はより妥当な <1k フィールド カウントを持っています。
この問題は、 Facebook がハッキングで回避したことで有名な「メソッドが多すぎる」問題に似ています。FB ソリューションは正気ではないようで、私が見つけた唯一の他のソリューション (たとえば、この Android バグ チケット、またはこれ、この SO 回答、この他の SO 回答) はすべて、メイン アプリのコードを変更することを伴いますが、これは、私がしたいこと。
他の解決策はありますか?
android - Android Maven apklib にはパッケージに独自の SDK が含まれていますか?
apklib を構成したときに、以下を含めました。
依存関係リストにあります。そうしないと、エディタ内のソース コードが認識されず、コンパイルされません。しかし、私の質問は、Android SDK は apklib を使用するプロジェクトに含まれますか? そのようです。しかし、なぜそうなるのでしょうか?どの SDK を使用するかは、apklib 自体ではなく、apklib を使用するプロジェクトによってのみ決定されるべきだと思いました(?)。メイン プロジェクトで api-level 14 を使用する場合、たとえば api-level 19 を使用する apklib を使用したくありません。
要するに、apklib pom の SDK 依存関係は (Maven を使用して) メイン プロジェクトに含まれますか?
android - m2e-android および eclipse kepler/adt 最新: apklib クラスとリソースが最終的な apk に含まれていない
なぜそれができるのか誰にも分かりますか?「プロパティ -> android -> lib を追加」を実行し、apklib プロジェクトをビルド パスに追加しました。ワークスペースにもインポートされ、開いてビルドされます。v7 サポート ライブラリが必要に応じて最終的な apk に含まれていますが、自分の apklib プロジェクトには含まれていないため、本当に気が狂います。すべてのプロジェクトはEclipseで問題なく表示されます.apklibの内容が完全に欠落しているのは最終的なapkだけです。
android - Eclipse エラーが発生しないように AAR で Maven を使用する Android プロジェクト
複数のライブラリを使用する Android プロジェクトがあります。
- 分析のための再生サービス、
- アクション用のappcompat-v7、
- その他... (広告、アプリ内...)
以前は APKLIB パッケージを使用していて、プロジェクトの APK を生成できましたが、Eclipse で何百ものエラーが発生しました。したがって、私の意図は、エラーがまったく発生しないようにこれを修正することです}:-)
AAR 形式とこのすべての gradle スタッフを発見しましたが、maven 構造をそのまま使用し続けたいと思います。
そこで、play_services の AAR パッケージを入手し ( https://github.com/mosabua/maven-android-sdk-deployerのおかげで)、appcompat-v7 とその他のライブラリの AAR パッケージを生成しました。
そして、まだ見つからないライブラリからのスタイルやその他の欠落しているリソースに関するいくつかのエラーを除いて、私はほとんどこれを実現しました:
これは私の依存関係の例です:
私の質問は次のとおりです。
- Android アプリを使用するために Maven を忘れて Gradle に移行する価値はありますか? (いいえと言ってください:)
- AAR パッケージを使用して依存リソースを取得することはできませんか? リソースにアクセスするために、すべてのプロジェクトを Eclipse にインポートしたくありません。
android - カスタム ローカル リポジトリで apklib 依存関係がないためにビルドが失敗するのはなぜですか?
SBT 0.12.4 でコンパイルする Scala/Android プロジェクトがあります。できます。
新しいリポジトリと新しいapklib
依存関係を宣言できます。
./lib/
プロジェクトのルート (local maven
リゾルバーの定義に対応)に次のファイルがあります。
下com/sbstrm/appirater
- _maven.repositories
- appirater-1.3.1.apklib
- appirater-1.3.1.pom
とでcom/sbstrm/appirater/1.3.1
:
- maven-metadata-local.xml
問題は、sbt を 0.13.6 にアップグレードしたときに発生します。
このバージョンでは、次のエラーが発生し、appirater ライブラリをプロジェクトに埋め込むことができなくなりました。
誰にも解決策がありますか?