2016-11-07 13 views
4

が参照するシンボル「__aeabi_memcpy4」を見つけることができない、私はちょうど13.xにNDKの12.xから更新しましたし、今私は、次のクラッシュを取得しています:ないUnsatisfiedLinkError:失敗のdlopen:

Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__aeabi_memcpy4" referenced by "/data/app/com.app.myapp-1/lib/arm/libJniBitmapOperationsLibrary.so"... 
    at java.lang.Runtime.loadLibrary(Runtime.java:372) 
    at java.lang.System.loadLibrary(System.java:1076) 
    at com.jni.bitmap_operations.JniBitmapHolder.<clinit>(JniBitmapHolder.java:11) 
    <...> 

ライブラリ私は使用しているのはhereです。

cannot locate symbolと同様の問題がありますが、Application.mkファイルにはAPP_PLATFORMという設定がありました。私のJNIライブラリはSDKに含まれているので、Application.mkファイルはありませんAndroid.mkです。また、私の目標/分sdkは最近変更されませんでした。私Android.mkファイルをライブラリからコピーされ、次のようになりますされています

LOCAL_PATH := $(call my-dir) 

#bitmap operations module 
include $(CLEAR_VARS) 

LOCAL_MODULE := JniBitmapOperationsLibrary 
LOCAL_SRC_FILES := JniBitmapOperationsLibrary.cpp 
LOCAL_LDLIBS := -llog 
LOCAL_LDFLAGS += -ljnigraphics 

include $(BUILD_SHARED_LIBRARY) 
APP_OPTIM := debug 
LOCAL_CFLAGS := -g 

答えて

1

[OK]を、私は私のためのソリューションが何をしたJNI and Gradle in Android StudioAndroid NDK : Getting java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "signal" referenced by "libffmpeg.so"

の助けを借りて答えを考え出したと思います次

1)以下でApplication.mkのファイルを追加します。

APP_CFLAGS += -I$(LOCAL_PATH) 
APP_ABI := all 
APP_PLATFORM := android-19 

2)更新私のbuild.gradleが私のApplication.mkを指しているようです。明らかにgradleはAndroid.mkという独自のバージョンを作成し、デフォルト値はcompileSdkVersionではなくminSdkVersionと同じapiレベルになります。 com.android.tools.build:gradle:2.2.0これが(詳細は、上記のJNI SOポストをチェックアウトするために)、以下を添加することによって達成することができると

externalNativeBuild { 
    ndkBuild { 
     path 'src/main/jni/Application.mk' 
    } 
} 

また、あなたはおそらく両方が1と2の手順は必要ありませんが、私はこれを確認するために既に多くの時間を費やしてきました

+0

あなたの知識を共有してくれてありがとう。これは私のために働いた.. –

関連する問題