/********************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也是最新
解决方案 »
- 怎么下载jdk se 6啊,我在编译android的时候出错了
- 如何制作安装包,可以把程序用到的数据部分安装的SD卡上
- 为什么会出现空指针异常
- 做了一个客户端与服务器端连接的项目
- android上的V4L2同时录制四个区域视频问题。
- 请指教下,这样的界面,应该怎么开
- 设置语言选项多了 [Developer]Accented English,如何删除它?求大神指教,有图,在线等!!!
- ECLIPSE配置SDK出问题了
- Gradle Gradle.keystore
- 关于安卓4.4定时机制的选择
- 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是模拟器名字版本号)
可是这种方法只能测试 不能发布版本