Android Studio armv7项目

时间:2017-03-02 14:01:34

标签: android assembly armv7

我正在尝试运行这些项目,使用jni来使用android工作室进行arm程序集调用,但它有外部makefile,我有点迷失

https://github.com/Miouyouyou/ARMv7-Java-JNI-call

https://github.com/Miouyouyou/ARMv7-Java-JNI-return

我在windows上使用android studio,当我尝试使用android studio终端(使用gnu make)时,我得到了

armv7a-hardfloat-linux-gnueabi-as -o decypherArcane.o decypherArcane.s process_begin:CreateProcess(NULL,armv7a-hardfloat-linux-gnueabi-as -o decypher make(e = 2):系统找不到指定的文件。 make:*** [decypherArcane.o]错误2

我认为如果我将makefile转换为.bat一个

,它可能会有效

这是makefile(它位于android studio项目的根目录之外)

`CROSS_COMPILE = armv7a-hardfloat-linux-gnueabi-
LD = $(CROSS_COMPILE)ld.gold
AS = $(CROSS_COMPILE)as
ANDROID_APK_NATIVE_LIB_DIR = ./apk/app/src/main/jniLibs
ANDROID_LIBNAME = libarcane.so
SOURCE = decypherArcane.s
OBJECT = decypherArcane.o

.PHONY: all
all: $(OBJECT)
    $(LD) -shared --dynamic-linker=/system/bin/linker --hash-style=sysv -o $(ANDROID_LIBNAME) $(OBJECT)
    mkdir -p $(ANDROID_APK_NATIVE_LIB_DIR)/armeabi{,-v7a}
    cp $(ANDROID_LIBNAME) $(ANDROID_APK_NATIVE_LIB_DIR)/armeabi
    cp $(ANDROID_LIBNAME) $(ANDROID_APK_NATIVE_LIB_DIR)/armeabi-v7a

.PHONY: install
install: all
    make -C apk

$(OBJECT): $(SOURCE)
    $(AS) -o $(OBJECT) $(SOURCE)

.PHONY: clean
clean:
    $(RM) $(OBJECT) $(ANDROID_LIBNAME)

.PHONY: distclean
distclean: clean
    $(RM) $(ANDROID_APK_NATIVE_LIB_DIR)/armeabi/$(ANDROID_LIBNAME)
    $(RM) $(ANDROID_APK_NATIVE_LIB_DIR)/armeabi-v7a/$(ANDROID_LIBNAME)
`

1 个答案:

答案 0 :(得分:1)

我已经更新了这两个项目ARMv7-Java-JNI-returnARMv7-Java-JNI-call,使得构建过程在Windows上稍微容易一些。

您需要:

  • PATH环境变量中的Android NDK路径。
  • 用于编译和安装示例APK的Java JDK

对于每个项目:

  • 浏览克隆存储库的文件夹
  • 使用 Shift + 右键单击在此处打开命令窗口 命令窗口 >
  • 输入mkBuild

如果一切顺利,你应该看到这样的事情:

[armeabi] Compile arm    : arcane <= decypherArcane.s
[armeabi] SharedLibrary  : libarcane.so
[armeabi] Install        : libarcane.so => apk/app/src/main/jniLibs/armeabi/libarcane.so
[armeabi-v7a] Compile arm    : arcane <= decypherArcane.s
[armeabi-v7a] SharedLibrary  : libarcane.so
[armeabi-v7a] Install        : libarcane.so => apk/app/src/main/jniLibs/armeabi-v7a/libarcane.so

如果是这种情况,请插入手机并在打开的命令窗口中键入以下内容:

cd apk
gradlew installDebug

同样,如果一切顺利,那么您的手机应该有一个新的Android APP,名为 Decyph&#39; App Wild Assembly!。运行新应用并查看结果。

现在,如果您在尝试构建,安装或运行这些示例时遇到任何问题,请在Github或Gitlab镜像上打开问题单。