問題タブ [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.
android - Android ICS のビルド中のヘッダー ファイルのあいまいさ
ここに問題があります: msm_camera.h は次のパスに存在します。
- ./external/kernel-headers/original/media/
- ./bionic/libc/kernel/common/media/
- ./prebuilt/ndk/android-ndk-r4/platforms/android-8/arch-x86/usr/include/media/
- ./kernel/include/media/
ビルドしようとすると、「MSM_PMEM_VIDEO_VPE」などの定義が存在しないというエラーがスローされます。それらがパスの1つに存在する場合。./external/kernel-headers/original/media/
したがって、C ソース ファイルがいつコンパイルされ、次のようにヘッダーが追加されているかを知りたいです。
ヘッダーが選択されているパスを特定するにはどうすればよいですか? オプション 1、2、3、または 4 からですか?
ビルドログも役に立たないようです。何百ものファイルに絶対パスを追加したくありません。それは間違いなく正しい方法ではありません。
前もって感謝します!
android - ANT の Android ライブラリ プロジェクト JAR
私はこのブログ投稿を読みました: http://android-developers.blogspot.nl/2011/10/changes-to-library-projects-in-android.html私がライブラリプロジェクト用の.JARファイルを作成できること外部の人々が利用できるように配布することができます。
この Library Jar の作成方法に関するドキュメントはどこにありますか?
これを完了するためにANTを介して実行する必要がある手順を知っている人はいますか?
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フォルダーを間違ってコピーしていますか?
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ファイルに問題はありますか?確認して提案してください
android - LinuxバイナリをAndroidAPKにパッケージ化する
.apkファイル(ARMベースのデバイスのみ)にLinuxバイナリ(ffmpegなど)を含めたい場合、これをルート化されていない電話に配布することは可能ですか?含まれているバイナリをRuntime.exec()で呼び出すことができることは知っていますが、これは推奨される方法ですか?
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 ファイルに問題はありますか? 助けてください
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
android - 環境ごとに異なる Android ビルド
開発、ステージング、そしてもちろん本番環境などのさまざまな環境をターゲットにして、アプリの複数のバージョンを (同時に) ビルドしてインストールできるようにしたいと考えています。
のパッケージ名はAndroidManifest.xml
、アプリを一意に識別するものであるため、ここでの主要なハードルのようです。com.mydomain.prod
、com.mydomain.staging
、com.mydomain.dev
または何らかの同様の規則を簡単に切り替えることができると思いましたが、これまでのところ、このアプローチで機能するパッケージ構造を思い付くことができませんでした。
痛みを最小限に抑えてこれを行うには、どのような戦略を採用できますか?
android - アプリの実行と署名されていないアプリのエクスポートの違いは何ですか?
.apk
アプリの実行と署名されていないアプリのエクスポート (ビルドに関して) ファイルの違いは何ですか?
私のアプリは、Dalvik 形式への変換でエクスポートに失敗したため、エラー 1 で失敗しましたが、 Run as Android Appを介して実行すると、実行され、デバイスにインストールされます。
すべての質問を検索し、すべての回答を試しましたが、何も機能しませんでした。デバッグ方法もわかりません。エラーはなく、ログに問題はありません。
参考までに、私のアプリは以下を使用しています:
- ActionBarSherlock (JakeWarton 作)
- ViewPagerIndicator (JakeWarton 作)
- PullToRefresh
- GoogleAdMob
- グーグルアナリティクス
android - コマンドラインから別のサーバーを指定してアプリをビルドする Ant スクリプト
サーバーと通信する Android アプリを開発しました。私は2つのサーバーを持っています。1 つは開発用で、もう 1 つは本番用です。
私の Android ソース コードでは、ビルド時にサーバー URLを手動で変更する必要があります。
例:デバッグ モード releaseの場合、次を使用します。
プロダクションリリースの場合、私は以下を使用します:
のurl
ようなリクエスト送信関数に変数を渡しますsendReqToServer(url);
。
別のリリースのこの URL の変更を手動で変更するのにうんざりしています。代わりに、Ant スクリプトを使用して、 (開発サーバーを使用) & (運用サーバーを使用)url
のように、別のリリース ビルドを作成するときにコマンド ラインを使用して指定したいと考えています。ant release-develop
ant release-product
これを実現するには、 build.xml<target name="release-develop">
で&を作成する必要があると思います<target name="release-product">
。しかし、コマンド ラインからアプリの URL を指定する ant スクリプトを作成する方法がわかりません。
誰かがそれを行う方法についてより詳細な情報を提供してもらえますか?