DLL转换so(NDK配置)

情况:

你用C++写了后台生成DLL,用unity3D调用DLL,游戏PC版OK,但是想变成手游,需要将DLL变成so

步骤:

1.安装jdk,配置安卓环境、eclipse(这个不说了,网上泛滥)

2.打开eclipse新建个Android项目,Flie--new--第二个,建的时候写个名字,剩下的一路next

3.在新建的项目下面新建一个文件夹jni,在这个文件夹里在创建一个文件夹cpp,将你生成DLL的那些所有的.cpp和.h都放进去

4.在jni文件夹下面新建文件,flie,命名为Andriod.mk(要写后缀名)

在这里面写

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := OnePersonDll------------------这里是你生成so的名字,和你DLL的名字保持一致,后面用so的时候前台调用的名字不用改了

MY_CPP_LIST := $(wildcard $(LOCAL_PATH)/cpp/*.cpp)----------这里是cpp,是你装文件的文件夹名字,LIST,文件夹,将你所有文件一次性的导入

#MY_CPP_LIST += $(wildcard $(LOCAL_PATH)/c++/*.cpp)

LOCAL_SRC_FILES := $(MY_CPP_LIST:$(LOCAL_PATH)/%=%)

#LOCAL_SRC_FILES := hello-jni.c

include $(BUILD_SHARED_LIBRARY)

5.配置NDK

http://www.cnblogs.com/yejiurui/p/3476565.html  可参考

elicpes上面倒数第四个,Project->Properties->Builders->New,新建一个Builder

(第一个选项)Main:

选Browse File System

选Browse File System,找到你新建的这个安卓项目里面的一个ndk-build.cmd

这里简单了,直接打开Browse Workspace直接选择你新建的安卓项目

下面有一个Apple的选项,按下,每个页面设置完都要按下

(第二个选项)Refresh:

选项和下面勾对一样,Sp那里进去选你项目里的jni文件夹

(第四个选项)Build Options:(和第三个类似,倒数第二个对号的是自动的意思,生成so自动生成)

6.生成so

Ctrl +s保存,就自动生成,如果没有错的话,就是像下面一样黑的

然后在计算机里你安卓项目的地方libs的文件夹里会自动生成一个armeabi的文件夹,里面就有.so

7.过程中遇到的问题

(1).cpp和.h里面有StdAfx.h,C标准库的东西,删掉

(2).库函数的地方删掉__declspec(dllexport),这是DLL的东西

(3).我忘记截图了,就是指针赋空的NULL都得换为0

(4)我用的随机数,不允许,在前面加了stdlib.h

(5)如果你用了C++STL的东西,像创建Andriod.mk的方式创建Application.mk,里面写

在Application.mk文件中添加APP_STL := stlport_static

或APP_STL := gnustl_static

时间: 2025-01-03 15:33:40

DLL转换so(NDK配置)的相关文章

Mac下Android studio 之NDK配置教程

Mac下Android studio 之NDK配置教程(一) 1.概述 最近项目全线转移到Mac下使用使用Android studio开发.遇到关键代码封装到 ***native***层,此时在win下的NDK配置步骤全部失效. 为此,花费了大量时间用来查阅资料,在此,记录下来,分享给大家供以后配置中作为参考. 2.环境 本人使用的开发配置 是:MAC OS 10.10 +androioid studio 1.2+android-ndk-r10e-darwin-x86_64+git .其他配置类

Android studio1.5.1 NDK配置开发

注意:因为使用的工具和SDK版本不同,过程可能就不同,我把我试验过的几种情况都会说下. 一.工具和SDK版本:Android studio1.51, SDK版本:23 (最新的6.0) 二.工具和SDK版本:Android studio1.51, SDK版本:21 在这两种情况之前你必须做好一件事:安装NDK.过程如下: 在setting 中appearance -> Android SDK -> SDK Tools -> Android NDk 打钩,然后点击apply -> O

Mac下Android studio 之NDK配置教程(一)

Mac下Android studio 之NDK配置教程(一) 1.概述 近期项目全线转移到Mac下使用使用Android studio开发. 遇到关键代码封装到 ***native***层,此时在win下的NDK配置步骤所有失效. 为此,花费了大量时间用来查阅资料,在此,记录下来,分享给大家供以后配置中作为參考. 2.环境 本人使用的开发配置 是:MAC OS 10.10 +androioid studio 1.2+android-ndk-r10e-darwin-x86_64+git . 其它配

Mac下Android studio 之NDK配置教程(二)

Mac下Android studio 之NDK配置教程(二) (一)简述 从上一篇NDK配置教程(一) 中,我 简单的阐述了MAC下NDK的基本解压和环境配置步骤. 本节我讲详细描述android studio 在MAC下的的配置运行步骤. (二)开始 首先,我们前往上次解压好的NDK文件路径,使用Android studio 导入Hello-jni 导入完成后,AS会自动帮我们构建为grade版本. 等待完成,版本构建完成. 打开文件目录如图所示 我们在local.properties文件下添

Cocos2d-x 2.2.3 使用NDK配置安卓编译环境问题之 Cannot find module with tag 'CocosDenshion/android' in import path

1.当做安卓移植的时候遇到如下问题: Android NDK: jni/Android.mk: Cannot find module with tag 'CocosDenshion/android' in import path Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ? Android NDK: The following directories were searched: And

录音文件lame转换MP3相关配置

文件下载整个功能完成了,那么对应的文件上传也跑不了.So~ Look here~ 业务需求是录制音频然后上传到七牛并且Android可以读. 与安卓沟通了一下统一了mp3格式,大小质量都不错.由于AVAudioRecorder录音的格式为.caf或者.wav而且很大需要进行转换压缩为MP3格式.这里需要用到三方库 lame. 使用lame转换后音频的质量和 _recorder = [[AVAudioRecorder alloc] initWithURL:_recordFilePath setti

android ndk配置

一:什么是NDK? NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和java 应用一起打包成apk.这些工具对开发者的帮助是巨大的. NDK 集成了交叉编译器,并提供了相应的mk 文件隔离CPU.平台.ABI 等差异,开发人员只需要简单修改mk 文件(指出“哪些文件需要编译”.“编译特性要求”等),就可以创建出so.NDK 可以自动地将so 和Java 应用一起打包,极大地减轻了开发人员的打包工作.比较简单的说,NDK是一套交叉编译工具,它可以帮你把你用C

android studio ndk配置和ndk开发

配置开发环境: 1:下载ndk,导入android studio中. 2:在项目中引入NDK   3:在计算机path变量中导入NDK路径,在编译.h文件的时候会用到. 一:建立java的native方法,然后编译生成.class文件. 二:根据.class文件生成.h文件. 1:打开Terminal,然后进入APP目录下的main主目录. 2:输入命令. 3:生成.h文件,生成的jni文件夹在main文件夹下. 三:根据.h文件编写.c文件. #include <string.h> #inc

android studio NDK配置

向您的项目添加 C 和 C++ 代码 本文内容 下载 NDK 和构建工具 创建支持 C/C++ 的新项目 构建和运行示例应用 向现有项目添加 C/C++ 代码 创建新的原生源文件 创建 CMake 构建脚本 将 Gradle 关联到您的原生库 搭配使用 Android Studio 2.2 或更高版本与 Android Plugin for Gradle 版本 2.2.0 或更高版本时,您可以将 C 和 C++ 代码编译到 Gradle 与 APK 一起打包的原生库中,将这类代码添加到您的应用中