2017-03-02 11 views
0

내가 안드로이드 스튜디오를 사용하여 ARM 어셈블리 전화 메신저를 할 JNI 사용이 프로젝트를 실행하기 위해 노력하고있어하지만 외부 메이크는 조금안드로이드 스튜디오있는 ARMv7 프로젝트

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

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

을 잃은 메신저했다

내가 안드로이드 스튜디오 터미널을 사용하게 수행하려고 할 때 내가

armv7a-hardfloat - 리눅스 - gnueabi-로 얻을 -o decypherArcane.o decypherAr (GNU 메이크업을 사용), 창에 안드로이드 스튜디오를 사용하고 cane.s process_begin : CreateProcess (NULL, armv7a-hardfloat-linux-gnueabi-as -o decypher ) make (e = 2) : 지정한 파일을 찾을 수 없습니다. 메이크업 : *** [decypherArcane.o] 오류 나는이 박쥐에 메이크 파일을 변환 할 경우 아마도 작동합니다 생각이

이다 메이크 (는 안드로이드의 루트 밖에 스튜디오 프로젝트)

`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

내가 Windows에서 빌드 프로세스가 약간 더 쉽게,이 두 프로젝트, ARMv7-Java-JNI-returnARMv7-Java-JNI-call 업데이트되었습니다.

당신이 무엇을 필요가있다 :

  • 안드로이드 NDK 경로 당신의 PATH 환경 변수에.

    • 당신이 저장소
    • 열고 명령 창를 복제 된 폴더를 찾아 여기 Shift 키를 사용하여 :
    • 자바 JDK는 각 프로젝트의 샘플 APK

    를 컴파일 및 설치 + 오른쪽 클릭여기에서 명령 창 열기

  • 유형 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 

이 휴대 전화를 연결하고 열린 명령 창에 다음을 입력 :

다시 말하면 모든 것이 잘되면 휴대 전화에 다음과 같은 이름의 새 Android APP가 있어야합니다. Decyph'App 또는 와일드 어셈블리!. 새 앱을 실행하고 결과를 확인합니다.

이제 샘플을 빌드, 설치 또는 실행하는 동안 문제가 발생하면 Github 또는 Gitlab 미러에서 문제 티켓을 열어주세요.

+0

감사합니다. –