android中调用c++文件并转为so
1、新建项目,不选include support c++
报错:Error:Failed to open zip file.
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
<a href="syncProject">Re-download dependencies and sync project (requires network)</a>
<a href="syncProject">Re-download dependencies and sync project (requires network)</a>
解决办法:将gradle/wraper/gradle-wrapper.properties文件中的
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip改为
distributionUrl=http\://services.gradle.org/distributions/gradle-2.14.1-all.zip即将s去掉。
2、在main中新建文件夹cpp,将.cpp文件放入其中,修改.cpp文件。
3、编写jni接口文件,注意文件内函数名称前缀要与app下的build.gradle的applicationId保持一致;
4、编写CMakeLists.txt,在view->tool windows->gradle->build生成.so文件
编译时遇到的错误
(1)Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
>
com.android.build.api.transform.TransformException:
java.lang.RuntimeException:
com.android.ide.common.process.ProcessException:
java.util.concurrent.ExecutionException:
com.android.ide.common.process.ProcessException:
 org.gradle.process.internal.ExecException: Process 'command 'C:\Program
 Files\Java\jdk1.7.0_67\bin\java.exe'' finished with non-zero exit value
 1
解决办法:在app下的builder.gradle 下添加 defaultConfig {
       .....       
        multiDexEnabled true
        .....
         }
(2)Execution failed for task ':excelSior:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: android/support/v4/util/TimeUtils.class
解决办法:在app下的build.gradle下添加:
android{ configurations { all*.exclude group: 'com.android.support', module: 'support-v4' all*.exclude group: 'com.android.support', module: 'support-annotations' } }
参考:https://stackoverflow.com/questions/26966843/java-util-zip-zipexception-duplicate-entry-during-packagealldebugclassesformult
http://wl9739.github.io/2016/09/21/%E5%9C%A8-Android-Studio-2-2-%E4%B8%AD%E6%84%89%E5%BF%AB%E5%9C%B0%E4%BD%BF%E7%94%A8-C-C-md/?utm_source=tuicool&utm_medium=referral
https://blog.csdn.net/youngpan1101/article/details/53614588
https://blog.csdn.net/huil0925/article/details/51586462
android中调用c++文件并转为so的更多相关文章
- Android中调用系统所装的软件打开文件(转)
		Android中调用系统所装的软件打开文件(转) 在应用中如何调用系统所装的软件打开一个文件,这是我们经常碰到的问题,下面是我所用到的一种方法,和大家一起分享一下! 这个是打开文件的一个方法: /** ... 
- android 中获取视频文件的缩略图(非原创)
		在android中获取视频文件的缩略图有三种方法: 1.从媒体库中查询 2. android 2.2以后使用ThumbnailUtils类获取 3.调用jni文件,实现MediaMetadataRet ... 
- 在Android中调用WebService
		某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查.我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数 ... 
- 【转】Android 学习笔记——利用JNI技术在Android中调用、调试C++代码
		原文网址:http://cherishlc.iteye.com/blog/1756762 在Android中调用C++其实就是在Java中调用C++代码,只是在windows下编译生成DLL,在And ... 
- 修改Android中strings.xml文件, 动态改变数据
		有些朋友可能会动态的修改Android中strings.xml文件中的值,在这里给大家推荐一种简单的方法.strings.xml中节点是支持占位符的,如下所示: <string name=&qu ... 
- Android中调用C++函数的一个简单Demo
		这里我不想多解释什么,对于什么JNI和NDK的相关内容大家自己去百度或谷歌.我对Android的学习也只是个新手.废话少说直接进入正题. 一.在Eclipse中创建一个Android Applicat ... 
- Java乔晓松-android中调用系统拍照功能并显示拍照的图片
		android中调用系统拍照功能并显示拍照的图片 如果你是拍照完,利用onActivityResult获取data数据,把data数据转换成Bitmap数据,这样获取到的图片,是拍照的照片的缩略图 代 ... 
- [转][android][利用JNI技术在Android中调用、调试C++代码]
		在Android中调用C++其实就是在Java中调用C++代码,只是在windows下编译生成DLL,在Android中会生成Linux系统下的.so文件(好吧,其实我基本没用过Linux). 没写过 ... 
- 在Android中调用C#写的WebService(附源代码)
		由于项目中要使用Android调用C#写的WebService,于是便有了这篇文章.在学习的过程中,发现在C#中直接调用WebService方便得多,直接添加一个引用,便可以直接使用将WebServi ... 
随机推荐
- Spark On Yarn报警告信息 WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
			1 贴出完整日志信息 // :: INFO client.RMProxy: Connecting to ResourceManager at hdp1/ // :: INFO yarn.Client: ... 
- centos 6.8下载地址
			centos6.8校验码查询网站:https://wiki.centos.org/zh-tw/Manuals/ReleaseNotes/CentOS6.8 CentOS 6.8 64位DVD 种子下载 ... 
- MVC_Route层层深入
			1.前期准备 新建一个MVC项目,并添加Home和About两个控制器 在这两个控制器对应添加index页面 namespace Study_MVC_Route.Controllers { publi ... 
- Mybatis-利用resultMap 输出复杂pojo
			个:复杂的sql语句查询的数据集的字段和 pojo的字段不相同,需要用到resultMap做一个对应. ---------------- mybatis中使用resultMap完成高级输出结果映射. ... 
- WebLogic XMLDecoder反序列化漏洞复现
			WebLogic XMLDecoder反序列化漏洞复现 参考链接: https://bbs.ichunqiu.com/thread-31171-1-1.html git clone https://g ... 
- MySql cmd下的学习笔记 —— 有关子查询的操作(where型,from型,exists型子查询)
			先找到goods表 查询goods_id最大的商品 where型的子查询 查询goods_id最大的商品(不能用排序) 把两步写成一步,就是子查询 from型子查询 查找出每种cat_id下goods ... 
- java在进程启动和关闭.exe程序
			/** * @desc 启动进程 * @author zp * @date 2018-3-29 */ public static void startProc(String processName) ... 
- java final、finally、finalize
- Boost 序列化
			原文链接: https://blog.csdn.net/qq2399431200/article/details/45621921 1. 编译器 gcc, boost 1.55 2.1第一个简单的例子 ... 
- Python笔记 【无序】 【二】
			序列list() ——把一个可迭代对象[可以是字符串,元组]转化为列表,可不带参数——生成空列表,或者带一个迭代器作为参数tuple() ——可迭代对象转化为元组str(obj) ——把obj对象转换 ... 
