/********************test.h
#ifndef _TEST_H_
#define _TEST_H_
#include <stdio.h>
#include <stdlib.h>
#ifdef __cplusplus
extern "C" {
#endif
extern int test_a();
#ifdef __cplusplus
}
#endif
#endif/*****************test.c#include "test.h"
int test_a()
{
int a = 9;
return a;
}以上用交叉编译器了一个libtest.so
交错编译器
arm-none-linux-gnueabi-gcc test.c -shared -o libtest.sojni目录下:
android.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := native-plasma这是NDK自带例子
LOCAL_SRC_FILES := plasma.c 我在里面代码加了int aa = test_a();
LOCAL_LDLIBS += -lm
LOCAL_LDLIBS +=-llog
LOCAL_LDLIBS +=-landroid
LOCAL_LDLIBS += $(LOCAL_PATH)/inllib/libtest.so //这是加载libtest.so 的路径
LOCAL_STATIC_LIBRARIES := android_native_app_glueinclude $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)然后用NDK命令$NDK/ndk-build一个native-plasma.so 能编译成功
编译器编译项目 在android仿真器 运行该程序 出错 提示 sorry! The application native-plasma (process com.gcx.plasma) has stopped unexpectedly.please try again
我看到log.so opengles.so进入adb shell 在lib目录下能看到 是不是我的test.so 没在这里面所以运行不成功呢
这lib是只读的 加不了NDK是r5的 SDK也是最新
解决方案 »
- Camera4.0.3导入eclipse-------有android4.0.3源码朋友帮帮忙
- git clone能不能用多线程?
- 怎么解决Location定位本地有误差
- AlarmManager问题求解
- imageview不监听图片透明区域
- SMS Inbox中的person的值的疑问
- android 和 嵌入式的关系
- 如何修改应用程序的名字
- 黑马程序中的手机彩票的服务器怎么配置
- 安卓项目集成MOB的短信验证码,有些号码没有收到验证码。
- Android联网应该怎样设置(HttpURLConnection,连接我自己的tomcat,访问的也是我的Ip地址)怎么访问不了?
- 显示视频流除了用bitmap接口,还可以用什么做显示?
在程序运行要加载 test.so 如果这库能放入system/lib里面 我想应该可以
关键加入不进去 不能写入 设定权限也不行
然后吧.so ./adb push /目录/libtest.so /system/lib
可能会出现out of memory
这是需要给模拟器分配空间 进入sdk tools目录有个 emulator
命令:./emulator -avd Android2.3.1 -partition-size 256 (Android2.3.1是模拟器名字版本号)
可是这种方法只能测试 不能发布版本