問題タブ [android-library]

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.

0 投票する
1 に答える
636 参照

android - Androidプラットフォーム上のAndroidライブラリとJavaクラシックライブラリ(.jar)

私が理解したように、ライブラリにJavaコードが含まれている限り、Android用のクラシックな.jarライブラリを作成できます。リソース(xmlファイルなど)をライブラリに含める必要がある場合は、いわゆるAndroidライブラリを作成する必要があります。

Androidライブラリは通常のAndroidアプリケーションプロジェクトに似ていますが、フラグandroid.librarydefault.propertiesファイル内)がに設定されていtrueます。

プロジェクトでAndroidライブラリを使用するには、最初にJavaソースが必要です。次に、ライブラリプロジェクトをEclipseにロードしてから、Eclipseメニューのアプリケーションプロジェクトからライブラリプロジェクトへの参照を追加する必要がありますProperties>Android>Librariesandroid.library.reference.xこの手順では、をアプリケーションdefault.propertiesファイルに追加します。これを行うと、ライブラリのJavaファイルがコンパイルされ、ビルド手順中に最終的なアプリケーションのdexファイルにマージされます。

  • 私の説明は正しいですか?
  • 他の人が私のAndroidライブラリを使用できるようにするために、本当にソースを配布する必要がありますか?

従来のjarライブラリ(内部でJavaコードのみを使用する場合にのみ作成できます)を使用する場合は、アプリケーションでライブラリ.jarファイルへの参照を追加するだけで十分です。これは、プロジェクトのビルドパスを指定することによって行われます。ビルドプロセスの後半で、最終的な.dexファイルを作成するために、jarファイルがアプリケーションクラスファイルとマージされます。

コメントしてくださいありがとうございました

STeN

0 投票する
1 に答える
160 参照

android - Android Eclipse ADT の「参照を見つける」バグ

私のセットアップ:

  • エクリプス 3.6.2、ADT 15.0
  • Android ライブラリ プロジェクト B
  • 依存アンドロイド プロジェクト A

ADT 12では使用できました

プロジェクトAでこのシンボルの参照を見つけるために、ライブラリBのシンボルで。これはもう機能しません。回避策はありますか? 同じ問題がありますか?(改名も同様です。)

0 投票する
1 に答える
4693 参照

android - Android ライブラリ プロジェクトに存在するネイティブ関数を呼び出すと、Android NDK UnsatisfiedLinkError が発生する

Android NDK を使用して共有ネイティブ ライブラリ (.so) を作成し、sha1 を計算する Android アプリを作成しました。最近、そのプロジェクトを Android 共有プロジェクトに作成し、そこに jni コードを保持しましたが、共有プロジェクトを参照する新しいプロジェクトを作成しましたが、ネイティブ関数を呼び出すときに UnsatisfiedLinkError が発生することを除いて、プロジェクトは正しく動作しているようです。ネイティブ関数は、Hash という名前の Java クラス内から呼び出されます。このクラス内には、ファイルの sha1 ハッシュを計算するための呼び出しを行うネイティブ関数がいくつかあります。

ndk/jni コードがコンパイルされ、アプリケーションの APK に入りますが、引き続きエラーが発生します。携帯電話でアプリをアンインストールし、ndk-build clean を実行して、古い参照が取得されていないことを確認しました..など、運が悪いです。また、jni 関数の名前が

だからここに私のコードの要点があります:

ハッシュ.java

それから私は(同じプロジェクトで

jni/Android.mk

jni/sha1_native.c

とにかく、プロジェクトの構造を変更して共通コードを再利用できるようにするまで(これをAndroidライブラリプロジェクトに入れる)、これはすべてうまくいきました。アプリをコンパイルして .apk ファイルを開くと、lib ディレクトリが表示され、その中に armeabi/libnative_sha1.so ファイルがあります。

更新 - いくつかのデバッグ情報

わかりましたので、デバッグを追加しました..静的ブロックからloadLibraryを取り出し、Hash.getFileHashNativeを呼び出す前に呼び出す関数に入れました

何が原因なのかはわかりませんが、明らかに関数が見つからないようです..変更しているのは mydomain の名前だけで、他のすべては正確です..また、私のライブラリプロジェクトにはパッケージがあることに注意してください. com.mydomain.sdk という名前で、私のアプリケーション プロジェクトは com.mydomain だけです。sha1 のソース コードは、com.mydomain.sdk.util.Hash の下のライブラリ プロジェクトにあります。ここで何が起こっているのかわかりません。何か案は?

0 投票する
1 に答える
1064 参照

android - src、resフォルダーを使用してAndroid jarプロジェクトを作成する方法

ソースとリソースフォルダーを持つ別のプロジェクトでjarライブラリとして使用するAndroidプロジェクトを作成したい。

デモ プロジェクトを作成し、Eclipse から src および res フォルダーを選択して jar にエクスポートしました。私のjarプロジェクトには、jarプロジェクトのレイアウトxmlファイルフォームリソースを使用するビュークラスが含まれています。別のプロジェクトにdemo.jarを追加して実行すると、エラーが発生します。

リソースを使用せずに動的ビューを作成し、そのjarプロジェクトを使用すると正常に動作しますが、そのビューでjarプロジェクトのリソースを使用したいです。

0 投票する
4 に答える
1215 参照

android - 画像処理用アンドロイド用ライブラリ

私はどこでも適切なAndroidライブラリを探しています。
写真から番号を抽出する必要があります。具体的
には、請求書の写真を撮ってシリアル番号を取得する必要があります。
どのようなライブラリを使用すればよいですか?

0 投票する
1 に答える
662 参照

android - Androidライブラリのインターフェースとアプリとライブラリの境界

Androidライブラリに変換したいAndroidアプリがあります。このアプリは、XMLレイアウト全体に画面全体をカバーするWebビューのみが含まれる1つのアクティビティに基づいています。ライブラリUI(実際にはWebビューのみ)を他のアプリのレイアウトに統合する必要があります。たとえば、1つの親アプリにはタブ構造があります。ライブラリのWebビューをタブの1つに表示し、タブは常に画面の下部に表示されるようにしたいと思います。通常、アプリとライブラリの境界をアクティビティレベルで設定することを選択しますが、この場合は機能しません。ライブラリから新しいアクティビティをポップアップすることはできません。これは、のすべての画面とタブをカバーするためです。下。

親アプリのタブ構造内で機能するように、これをライブラリに変換する最良の方法は何ですか?アプリとライブラリの境界はどこにあるべきですか?私のアイデアのいくつかは次のとおりです。

  1. ライブラリユーザーに、好みのカスタムレイアウト(この場合はタブ)を使用してアクティビティを作成させます。レイアウトにWebビューが含まれていることを確認してください。findViewByIdを使用してwebviewオブジェクトを取得し、このオブジェクトをライブラリに渡して、ライブラリがページの表示に使用できるようにします。ここでの主な欠点は、ライブラリの一部が一部のブロードキャストレシーバーを親アクティビティ(このシナリオでは実際にはライブラリの一部ではない)に接続する必要があることです。この結合はかなり疑わしいようです。

  2. おそらく、Android3.0で導入されたフラグメントを使用してください。ただし、これらは主にタブレットを対象としているようです。この場合、これらは機能しますか?

  3. 私が知らないAndroid2.1+と互換性のある別のオプションはありますか?

0 投票する
4 に答える
1082 参照

android - 異なるライブラリを使用するために複数の Android バージョンを実装する方法は?

無料/有料バージョンに関連する複数の Android バージョンについて多くの質問があることは承知していますが、これは少し異なる場合があります。

現在、私のアプリは広告に AdMob を使用しており、Android マーケットと Samsung App Store で公開されています。残念ながら、Samsung ストアでは、将来、すべてのユーザーが独自の広告ネットワークである Samsung AdHub に移行する必要があります。AdMob と AdHub の両方に独自のライブラリと独自の SDK があります。

AdMob を含むバージョンと AdHub (および必要なすべてのコード) を含む 2 つの異なるバージョンをビルドするソリューションを探しています。新しいバージョンのリリース時に、手間をかけずに 2 つのバージョンを簡単にビルドするには、どのようなソリューションが必要ですか?

多くのソリューションでは、メイン プロジェクトをライブラリ プロジェクトに移動してから、ライブラリ プロジェクト (ベース プロジェクト) を含む他の 2 つのアプリをビルドすることをお勧めします。しかし、私はその解決策があまり好きではなく (可能であれば、アプリを 1 つのプロジェクトに保持することを好みます)、代替案を探してから、どちらが自分のニーズに適しているかを判断しようとしています。

0 投票する
1 に答える
1461 参照

android - Ant と Proguard を使用して Android アプリをコンパイルする際の問題

さまざまなモジュールで構成される Android アプリがあります。Main モジュールは、Google の GSON や v4.support.package などのライブラリを使用しています。適切な proguard.cfg を使用したカスタム ビルド スクリプトでもビルドされます。ここで、部分的に同じライブラリ (GSON support.v4) を使用する別の「Android ライブラリ」を統合する必要があります。のようなたくさんのメモを取得する以外に

注: プログラム クラス [com.google.gson.Gson] の重複定義

次のようなメモも取得します

[proguard] 注: com.google.gson.UnsafeAllocator: 動的に参照されるクラス sun.misc.Unsafe が見つかりません

[proguard] 注: 構成は不明なクラス「sun.misc.Unsafe」を参照しています

特にそのために、Proguard.cfgにいくつかの「キープ」がある奇妙な原因を見つけました:

-keepattributes 署名、注釈

-keep class com.google.gson.** {*;}

-keep class sun.misc.Unsafe { *; }

これは、プロジェクト内のモジュール ライブラリを参照しなくても、プロジェクトでうまく機能します。私は最新の SDK とツールを使用しており、カスタムの proguard.cfg をモジュール ライブラリに追加しました。これは、モジュール ライブラリ自体でうまく機能します (スタンドアロン モードでビルドする場合)。ビルドは、ライブラリ プロジェクト内のカスタム proguard.cfg に依存していないように思えます。何を試すべきかについてのアイデアは高く評価されます

0 投票する
3 に答える
1170 参照

android - Android ライブラリに追加された Jar がプロジェクトで参照されない

いくつかの外部 jar を含む Android ライブラリを作成しました。これらの jar は、ライブラリ プロジェクトの「参照ライブラリ」に表示されます。他のプロジェクトでこのライブラリを参照すると、ライブラリに追加された jar をリンクできません。プロジェクト配下の参照ライブラリにエラーが表示されます。

ライブラリに追加されたjarをリンクしているはずですが、このライブラリを追加したプロジェクトでエラーが表示されます。誰でもこれを理解するのを手伝ってもらえますか?