我得到的错误:
error: undefined reference to ‘__android_log_print’
#include <android/log.h>
我尝试过两种方法:__ android_log_print和__android_log_write
我还在我的Android.mk文件(我手动编译)中链接了日志库.
LOCAL_LDLIBS:= –llog
我也尝试了几种我认为的替代品:
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
这是我的Android.mk:
LOCAL_PATH := $(call my-dir) #used to skip re-compiling libraw #include $(CLEAR_VARS) #LOCAL_MODULE := libraw_r #LOCAL_SRC_FILES := ../obj/local/armeabi/libraw_r.so #LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/libraw #include $(PREBUILT_SHARED_LIBRARY) #used for compiling libraw include $(CLEAR_VARS) LOCAL_CFLAGS += -I$(SYSROOT)/usr/lib/include/libraw -pthread -w LOCAL_CXXFLAGS += -I$(SYSROOT)/usr/lib/include/libraw -pthread -w LOCAL_MODULE := libraw_r # name of your module LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -lstdc++ # libraries to link against,lstdc++ is auto-linked LOCAL_SRC_FILES := internal/dcraw_common.cpp internal/dcraw_fileio.cpp internal/demosaic_packs.cpp src/libraw_cxx.cpp src/libraw_c_api.cpp LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/libraw include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := armapi LOCAL_SRC_FILES := armapi.cpp LOCAL_SHARED_LIBRARIES := libraw_r include $(BUILD_SHARED_LIBRARY) LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
这是build.gradle文件:
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.0.0+' } } apply plugin: 'android' dependencies { compile fileTree(dir: 'libs',include: '*.jar') } android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { ndk { moduleName "armapi" ldLibs "log" } } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' jniLibs.srcDir 'libs' // use the jni .so compiled from the manual ndk-build command jni.srcDirs = [] //disable automatic ndk-build call java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } // Move the tests to tests/java,tests/res,etc... instrumentTest.setRoot('tests') // Move the build types to build-types/<type> // For instance,build-types/debug/java,build-types/debug/AndroidManifest.xml,... // This moves them out of them default location under src/<type>/... which would // conflict with src/ being used by the main source set. // Adding new build types or product flavors should be accompanied // by a similar customization. debug.setRoot('build-types/debug') release.setRoot('build-types/release') } }