Android.mk で「include $(BUILD_EXECUTABLE)」コマンドを使用して実行可能ファイルを作成しました。私の要件は、上記で生成された実行可能ファイルを abd シェルで実行することです。
私は試した:
以下は、ndk-build コマンドを使用してコンパイルされた私の C コードです。
#include <stdio.h>
int main()
{
printf("\n\nHello World\n\n");
return 0;
}
以下は私のAndroid.mkファイルの内容です:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := HelloExecutable
LOCAL_SRC_FILES := hello.c
include $(BUILD_EXECUTABLE)
コマンドndk-build を実行すると、次のファイルが生成されます。
projectRoot->libs-> HelloExecutable
私の仕事は、上記で生成されたファイルを adb シェルで実行することです。したがって、最初に次のコマンドを使用してファイルをSDカードにプッシュしました。
adb push ~/projectRoot->libs->HelloExecutable /sdcard/
今、私は次を使用して adb シェルに切り替えます: $adb shellコマンド (ここではエミュレーターを使用しています)。
次に、パーミッションを次のように変更します: chmod 777 /sdcard/HelloExecutable
上記のコマンドが実行されると、HelloExecutableファイルの実行権限が取得されます。
次に、現在の作業ディレクトリを sdcard に変更します。つまり、cd /sdcard/
上記のファイルを実行しようとすると、次のエラーが発生します。
# ./HelloExecutable
./HelloExecutable: permission denied
上記を実行するために、エミュレータを使用しています。誰かが上記のエラーの理由を教えてもらえますか??
視聴者の皆様におかれましては、上記の問題を解決していただきますようお願い申し上げます。あなたの答えを待っています。前もって感謝します。