Android — NDK не связывает мой файл lib * .so с Java

Итак, я работаю над проектом Android NDK, и я получил свой код C ++ для компиляции в .so файл с помощью Android.mk сделать файл. Он даже собирается, но не запускается в эмуляторе. Я продолжаю получать эту ошибку:

06-22 17:01:06.374 2463-2463/com.example.SanAngeles E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.SanAngeles, PID: 2463
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.SanAngeles-2/base.apk"],nativeLibraryDirectories=[/data/app/com.example.SanAngeles-2/lib/x86_64, /vendor/lib64, /system/lib64]]] couldn't find "libsanangeles.so"

А вот и мой Android.mk:

LOCAL_PATH := $(call my-dir)

# Project
include $(CLEAR_VARS)
LOCAL_MODULE := sanangeles

FREETYPE_INCLUDE := freetype2-android/include
LOCAL_C_INCLUDES := \
$(FREETYPE_INCLUDE) \
$(FREETYPE_INCLUDE)/freetype/ \
$(FREETYPE_INCLUDE)/freetype/config \
$(FREETYPE_INCLUDE)/freetype/internal \
$(FREETYPE_INCLUDE)/freetype/internal/services
LOCAL_STATIC_LIBRARIES := freetype

LOCAL_LDLIBS := -landroid -lEGL -lGLESv2

LOCAL_CFLAGS := -DANDROID_NDK -DDISABLE_IMPORTGL

LOCAL_SRC_FILES := \
src/triangle.cpp \
src/app-android.c \
src/Helpers/ivec2.cpp \
src/Helpers/vec3.cpp \
src/Renderers/BoxRenderer.cpp \
src/Renderers/TextRenderer.cpp \
src/Renderers/Shader.cpp

include $(BUILD_SHARED_LIBRARY)

Изменить: Забыл включить структуру проекта

app/
build/
src/
main/
java/
jni/
freetype2-android/
src/
Android.mk
Application.mk
build.gradle
build
build.gradle

Edit2:

Где это загружается в Java:

приложение / SRC / главная / Java / com.example.SanAngeles / DemoActivity.java

public class DemoActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGLView = new DemoGLSurfaceView(this);
setContentView(mGLView);
}

private GLSurfaceView mGLView;

static {
System.loadLibrary("sanangeles");
}
}

Изменить 3:

build.gradle в приложении /

android {
compileSdkVersion = 23
buildToolsVersion = '23.0.2'

defaultConfig.with {
applicationId = 'com.example.SanAngeles'
minSdkVersion    = 4
targetSdkVersion = 23
}

sourceSets.main {
jniLibs.srcDirs = ['src/main/jni/libs']
}

buildTypes {
release {
minifyEnabled=false
proguardFiles.add(file('proguard-rules.txt'))
}
}
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector