問題タブ [android-build]

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 に答える
170 参照

android - Android ICS のビルド中のヘッダー ファイルのあいまいさ

ここに問題があります: msm_camera.h は次のパスに存在します。

  1. ./external/kernel-headers/original/media/
  2. ./bionic/libc/kernel/common/media/
  3. ./prebuilt/ndk/android-ndk-r4/platforms/android-8/arch-x86/usr/include/media/
  4. ./kernel/include/media/

ビルドしようとすると、「MSM_PMEM_VIDEO_VPE」などの定義が存在しないというエラーがスローされます。それらがパスの1つに存在する場合。./external/kernel-headers/original/media/

したがって、C ソース ファイルがいつコンパイルされ、次のようにヘッダーが追加されているかを知りたいです。

ヘッダーが選択されているパスを特定するにはどうすればよいですか? オプション 1、2、3、または 4 からですか?

ビルドログも役に立たないようです。何百ものファイルに絶対パスを追加したくありません。それは間違いなく正しい方法ではありません。

前もって感謝します!

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

android - ANT の Android ライブラリ プロジェクト JAR

私はこのブログ投稿を読みました: http://android-developers.blogspot.nl/2011/10/changes-to-library-projects-in-android.html私がライブラリプロジェクト用の.JARファイルを作成できること外部の人々が利用できるように配布することができます。

この Library Jar の作成方法に関するドキュメントはどこにありますか?

これを完了するためにANTを介して実行する必要がある手順を知っている人はいますか?

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

android - Androidでinitシェルスクリプトを使用してchrootを実行することはできません

Android ICSEmulator内でglibcを実行したいのですが。glibcをAOSPルートフォルダーの別のフォルダーとしてバンドルし、Android.mkに以下の内容を含めます。

glibcフォルダー全体をout/target / product / generic /system/フォルダーにコピーします。そして、makesnodはそれをsystem.imgに含めます

startglibc.shおよびinit.shスクリプトがあり、それぞれ/ system/glibcおよび/system/ glibc /root/フォルダーにコピーされるglibcフォルダーがあります。

私はbusyboxをコンパイルして/system/bin/フォルダーにコピーしました。

/system/glibc/startglibc.shの内容は次のとおりです。

startglibc.shは、次のようにinit.goldfish.rcから呼び出されます。

以下のように、system / core / include / private / android_filesystem_config.hを使用して、init.shのファイル権限として777とroot:rootを付与しました。

起動時にstartglibc.shスクリプトが呼び出されますが、chrootの実行中に、パーミッション拒否エラーが発生します。

init.shを使用してchrootを実行するために何かが足りませんか?または、Android AOSPのビルド中にglibcフォルダーを間違ってコピーしていますか?

0 投票する
0 に答える
270 参照

android - インターフェースとのAndroidランタイムリンクの問題

Linuxでandroidビルドシステムを使用してアプリケーションとインターフェイスjarをビルドしようとしています。アプリケーションにはインターフェイスとの依存関係があるため、アプリケーションを作成する前にインターフェイスjarを準備する必要があります。

しかし、新しくビルドされたインターフェイスjarを使用しているときに、ビルド/実行時の問題に直面しました。私たちは、2つの異なる順序でアプリケーションを作成しようとしました。

ケース1.インターフェイスをローカルモジュールとして構築し、それをLOCAL_JAVA_LIBRARIESとしてapkとリンクします。ケース2.インターフェイスをローカルモジュールとして構築し、それをLOCAL_PREBUILT_STATIC_JAVA_LIBRARIESとしてapkとリンクします。

以下は、メインとインターフェースのAndroid.mkファイルです。

1.メインAndriod.mkファイル: /source/Android.mk

=======================================

STACK_PATH:= $(my-dirを呼び出す)

LOCAL_PATH:= $(STACK_PATH)

$(CLEAR_VARS)を含める

$(LOCAL_PATH)/interface/Android.mkを含める

$(CLEAR_VARS)を含める

LOCAL_PATH:= $(STACK_PATH)

$(LOCAL_PATH)/application/Android.mkを含める

=======================================

2.インターフェース Android.mk:/source/interface/Android.mk

=======================================

LOCAL_PATH:= $(my-dirを呼び出す)

$(CLEAR_VARS)を含める

LOCAL_SRC_FILES:= $(call all-subdir-java-files、src)

LOCAL_MODULE:= MyInterface

LOCAL_MODULE_TAGS:=オプション

LOCAL_MODULE_CLASS:= JAVA_LIBRARIES

LOCAL_JAVA_RESOURCE_DIRS:= src

$(BUILD_JAVA_LIBRARY)を含める

$(dist-for-goals、droidcore、$(full_classes_jar):MyInterface.jarを呼び出します)

=======================================

以下は、CASE1で適用するためのAndroid.mkファイルです。

アプリケーション Android.mk:/source/application/Android.mk

=======================================

TOP_LOCAL_PATH:= $(my-dirを呼び出す)

LOCAL_PATH:= $(TOP_LOCAL_PATH)

$(CLEAR_VARS)を含める

LOCAL_SRC_FILES:= $(all-subdir-java-filesを呼び出す)

LOCAL_PACKAGE_NAME:= MyApplication

LOCAL_JAVA_LIBRARIES:= MyInterface

$(BUILD_PACKAGE)を含める

$(BUILD_MULTI_PREBUILT)を含める

=======================================

ビルドは正常に完了しました。ただし、このアプリケーションを実行しようとすると、このエラーが表示されます。I / dalvikvm(XXXX):Lcom / test / example/applicationの解決に失敗しました。インターフェイスXXX'Lcom/ test / example / interface;' W / dalvikvm(XXXX):クラス'Lcom / test / example/application;'のリンク 失敗した

以下は、CASE2で適用するためのAndroid.mkファイルです。

アプリケーション Android.mk/source/application/Android.mk

=======================================

TOP_LOCAL_PATH:= $(my-dirを呼び出す)

LOCAL_PATH:= $(TOP_LOCAL_PATH)

$(CLEAR_VARS)を含める

$(shell(cp $(LOCAL_PATH)/../ out / target / common / obj / JAVA_LIBRARIES / Interface_intermediates / classes-jarjar.jar $(LOCAL_PATH)/applications/libs/MyInterface.jar))

LOCAL_STATIC_JAVA_LIBRARIES + = MyInterface

LOCAL_SRC_FILES:= $(all-subdir-java-filesを呼び出す)

LOCAL_PACKAGE_NAME:= MyApplications

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES + = MyInterface:libs / MyInterface.jar

$(BUILD_PACKAGE)を含める

$(BUILD_MULTI_PREBUILT)を含める

=======================================

これにより、次のようなビルドエラーが発生しました。

build / core / base_rules.mk:166:*ソース/アプリケーション:MODULE.TARGET.JAVA_LIBRARIES.MyInterfaceはすでにソース/インターフェースによって定義されています。止まる。

ただし、ビルドシステムを使用せずに個別にビルドした場合、この問題は発生しません。また、アプリケーションはエラーなしで実行されます。


Eclipseを使用してMyinterface.jarにインターフェイスを構築し、Linuxでこのインターフェイスjarを使用して(静的にリンクすることにより)application-apkを構築すると、アプリケーションはスムーズに実行されました。

Android.mkファイルに問題はありますか?確認して提案してください

0 投票する
2 に答える
4182 参照

android - LinuxバイナリをAndroidAPKにパッケージ化する

.apkファイル(ARMベースのデバイスのみ)にLinuxバイナリ(ffmpegなど)を含めたい場合、これをルート化されていない電話に配布することは可能ですか?含まれているバイナリをRuntime.exec()で呼び出すことができることは知っていますが、これは推奨される方法ですか?

0 投票する
2 に答える
1405 参照

android - Android ランタイム リンクの問題

Linux で Android ビルド システムを使用してアプリケーションとインターフェイス jar をビルドしようとしています。私のアプリケーションはインターフェイスに依存しているため、アプリケーションを作成する前にインターフェイス jar を準備する必要があります。

しかし、新しくビルドしたインターフェース jar を使用しているときに、ビルド/実行時の問題に直面しました。2 つの異なる順序でアプリケーションを作成しようとしました。

ケース 1. インターフェイスをローカル モジュールとしてビルドし、LOCAL_JAVA_LIBRARIES として apk とリンクします。ケース 2. インターフェイスをローカル モジュールとしてビルドし、LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES として apk とリンクします。

以下は、メインとインターフェイスの Android.mk ファイルです。

1.メインの Andriod.mk ファイル: /source/Android.mk

=======================================

STACK_PATH:= $(my-dir を呼び出す)

LOCAL_PATH := $(STACK_PATH)

$(CLEAR_VARS) を含める

$(LOCAL_PATH)/interface/Android.mk を含める

$(CLEAR_VARS) を含める

LOCAL_PATH := $(STACK_PATH)

$(LOCAL_PATH)/application/Android.mk を含める

=======================================

2.インターフェイス Android.mk : /source/interface/Android.mk

=======================================

LOCAL_PATH:= $(my-dir を呼び出す)

$(CLEAR_VARS) を含める

LOCAL_SRC_FILES := $(all-subdir-java-files, src を呼び出す)

LOCAL_MODULE := MyInterface

LOCAL_MODULE_TAGS := オプション

LOCAL_MODULE_CLASS := JAVA_LIBRARIES

LOCAL_JAVA_RESOURCE_DIRS:= src

$(BUILD_JAVA_LIBRARY) を含める

$(dist-for-goals、droidcore、$(full_classes_jar):MyInterface.jar を呼び出す)

=======================================

以下は、CASE 1 のアプリケーションの Android.mk ファイルです。

アプリケーション Android.mk: /source/application/Android.mk

=======================================

TOP_LOCAL_PATH:= $(my-dir を呼び出す)

LOCAL_PATH:= $(TOP_LOCAL_PATH)

$(CLEAR_VARS) を含める

LOCAL_SRC_FILES := $(all-subdir-java-files を呼び出す)

LOCAL_PACKAGE_NAME := MyApplication

LOCAL_JAVA_LIBRARIES := MyInterface

$(BUILD_PACKAGE) を含める

$(BUILD_MULTI_PREBUILT) を含める

=======================================

ビルドは正常に完了しましたが、このアプリケーションを実行しようとすると、このエラーが表示されます。I/dalvikvm( XXXX): Lcom/test/example/application の解決に失敗しました。インターフェイス XXX 'Lcom/test/example/interface;' W/dalvikvm( XXXX): クラス 'Lcom/test/example/application;' のリンク 失敗した

以下は、CASE 2 のアプリケーションの Android.mk ファイルです。

アプリケーション Android.mk /source/application/Android.mk

=======================================

TOP_LOCAL_PATH:= $(my-dir を呼び出す)

LOCAL_PATH:= $(TOP_LOCAL_PATH)

$(CLEAR_VARS) を含める

$(shell (cp $(LOCAL_PATH)/../out/target/common/obj/JAVA_LIBRARIES/Interface_intermediates/classes-jarjar.jar $(LOCAL_PATH)/applications/libs/MyInterface.jar ))

LOCAL_STATIC_JAVA_LIBRARIES += MyInterface

LOCAL_SRC_FILES := $(all-subdir-java-files を呼び出す)

LOCAL_PACKAGE_NAME := MyApplicationss

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += MyInterface:libs/MyInterface.jar

$(BUILD_PACKAGE) を含める

$(BUILD_MULTI_PREBUILT) を含める

=======================================

これにより、次のようにビルド エラーが発生しました。

build/core/base_rules.mk:166: * ソース/アプリケーション: MODULE.TARGET.JAVA_LIBRARIES.MyInterface は既にソース/インターフェースによって定義されています。止まる。

しかし、ビルドシステムを使用せずに個別にビルドすると、この問題は発生しません。また、アプリケーションはエラーなしで実行されます。


eclipse を使って Myinterface.jar にインターフェースをビルドし、Linux でこのインターフェース jar を使用して (静的にリンクして) application-apk をビルドすると、アプリケーションはスムーズに実行されました。

Android.mk ファイルに問題はありますか? 助けてください

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

android - 「android update」コマンドで「android.library=true」を追加する方法

android.library=trueコマンドラインから Android プロジェクトをビルドし、project.properties にフラグを追加したいと考えています。androidまた、ファイル名とプロパティ名が変更される可能性があるため、sdk のコマンドを使用してファイルに手動で追加したくありません。

コマンドandroid update lib-project -p PATHはこのフラグを追加しなくなりました。

コマンドandroid create lib-project ...はこのフラグを「追加」しますが、文字列リソースなどの一部のファイルをオーバーライドします

私の質問は次のとおりです。androidツールを使用して、この android.library フラグが true に設定された project.properties を作成できますが、それ以上のことはできませんか?

lib-project で一部のフラグを使用できないandroid update projectとの違いは何ですか?android update lib-project

0 投票する
2 に答える
3947 参照

android - 環境ごとに異なる Android ビルド

開発、ステージング、そしてもちろん本番環境などのさまざまな環境をターゲットにして、アプリの複数のバージョンを (同時に) ビルドしてインストールできるようにしたいと考えています。

のパッケージ名はAndroidManifest.xml、アプリを一意に識別するものであるため、ここでの主要なハードルのようです。com.mydomain.prodcom.mydomain.stagingcom.mydomain.devまたは何らかの同様の規則を簡単に切り替えることができると思いましたが、これまでのところ、このアプローチで機能するパッケージ構造を思い付くことができませんでした。

痛みを最小限に抑えてこれを行うには、どのような戦略を採用できますか?

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

android - アプリの実行と署名されていないアプリのエクスポートの違いは何ですか?

.apkアプリの実行と署名されていないアプリのエクスポート (ビルドに関して) ファイルの違いは何ですか?

私のアプリは、Dalvik 形式への変換でエクスポートに失敗したため、エラー 1 で失敗しましたが、 Run as Android Appを介して実行すると、実行され、デバイスにインストールされます。

すべての質問を検索し、すべての回答を試しましたが、何も機能しませんでした。デバッグ方法もわかりません。エラーはなく、ログに問題はありません。

参考までに、私のアプリは以下を使用しています:

  • ActionBarSherlock (JakeWarton 作)
  • ViewPagerIndicator (JakeWarton 作)
  • PullToRefresh
  • GoogleAdMob
  • グーグルアナリティクス
0 投票する
3 に答える
366 参照

android - コマンドラインから別のサーバーを指定してアプリをビルドする Ant スクリプト

サーバーと通信する Android アプリを開発しました。私は2つのサーバーを持っています。1 つは開発用で、もう 1 つは本番用です。

私の Android ソース コードでは、ビルド時にサーバー URLを手動で変更する必要があります。

例:デバッグ モード releaseの場合、次を使用します。

プロダクションリリースの場合、私は以下を使用します:

urlようなリクエスト送信関数に変数を渡しますsendReqToServer(url);

別のリリースのこの URL の変更を手動で変更するのにうんざりしています。代わりに、Ant スクリプトを使用して、 (開発サーバーを使用) & (運用サーバーを使用)urlのように、別のリリース ビルドを作成するときにコマンド ラインを使用して指定したいと考えています。ant release-developant release-product

これを実現するには、 build.xml<target name="release-develop">で&を作成する必要があると思います<target name="release-product">。しかし、コマンド ラインからアプリの URL を指定する ant スクリプトを作成する方法がわかりません。

誰かがそれを行う方法についてより詳細な情報を提供してもらえますか?