Undefined reference to AAssetManager_fromJava

荒凉一梦 提交于 2019-12-04 02:08:32

My mistake. I didn't have "android" library added to the linker. I have actually setup NDK dev environment on Visual Studio Express and "android" library wasn't added to my project by default.

If you are using makefiles, be sure to add -landroid to your LOCAL_LDLIBS when using native AssetManager.

Ottoman Empire

Android Studio developers, İf you have ExternalNativeBuild file which is called "CMakeList.txt" you must append this code to the file CMakeList.txt

find_library( # Sets the name of the path variable.
          android-lib

          # Specifies the name of the NDK library that
          # you want CMake to locate.
          android )
target_link_libraries( 
                   ${log-lib}
                    ${android-lib})

if you also have native lib you can add easily like this

target_link_libraries( native-lib
                   ${log-lib}
                    ${android-lib})

It should work!

I added the following to gradle.build

android.ndk { ldLibs.addAll(["android", "log"]) }

h5pang

I fixed it by adding following to Android.mk

LOCAL_SHARED_LIBRARIES += libandroid
zhiping Yin
find_library( # Sets the name of the path variable.
    log-lib

    # Specifies the name of the NDK library that
    # you want CMake to locate.
    log
)

find_library(android-lib android)

target_link_libraries( # Specifies the target library.
    hll
    ${log-lib}
    ${android-lib}
    # Links the target library to the log library
    # included in the NDK.
)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!