Eclipse NDK迁移到Android Studio的方法示例

 更新时间:2018年03月24日 11:11:15   作者:Labradors  
本篇文章主要介绍了Eclipse NDK迁移到Android Studio的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

最近看一个NDK项目,因为源码使用Eclipse IDE写的,想把代码导入Android Studio使用,毕竟好用很多,使用AS导入后,第一个问题就是编码问题,项目之前竟然使用的是GBK编码。首先就是改变编码问题。我先在设置中将项目编码改为UTF-8,build结果显示一堆错误的乱码,在网上逛了一圈,找到解决方案。

编码

  1. 将AS右下角的UTF-8换成GBK。
  2. 跳出提示选择"reload",此时注释之类的乱码会显示正确。
  3. 右下角再选择UTF-8
  4. 跳出提示选择"convert",此时编码从GBK转为UTF-8。
  5. 编译运行,就不会出现乱码错误了。
  6. 别的乱码的类也是这种方法

NDK支持

将项目导入之后,build有提示错误:

Error: Flag android.useDeprecatedNdk is no longer supported and will be removed in the next version of Android Studio.  Please switch to a supported build system.
  Consider using CMake or ndk-build integration. For more information 

我们把gradle.properties中android.useDeprecatedNdk=true去掉。然后直接在AS右键Linked C++ Project.选择cmake或者ndk build的方式链接。

  1. cmake: 选择CMakeLists.txt文件
  2. NDK build: 选择Android.mk文件

或者你也可以在你的module中加入

externalNativeBuild {
  ndkBuild {
   path 'src/main/jni/Android.mk'
  }
 }

无法导入

ndk支持后,现在运行项目,项目可以启动了,可是运行直接崩溃,崩溃日志为:

java.lang.UnsatisfiedLinkError: Couldn't load xxx from loader dalvik.system.PathClassLoader

看样子是无法加载库,在module中加入:

sourceSets {
  main {
   jniLibs.srcDirs = ['libs']
  }
 }

然后在defaultConfig中加入:

ndk {
   moduleName "your ndk module name"
   abiFilters "armeabi", "armeabi-v7a", "x86"
  }

找不到方法

java.lang.UnsatisfiedLinkError: No implementation found for int xxxxx

大概意思是so库加载成功了,但是java调用对应函数时,找不到对应的c++函数.

遇到这种情况,不要怀疑,sdk提供的包一定要把包名完整拷贝到项目。路径要与so函数相对应。

text relocations

java.lang.UnsatisfiedLinkError...xxx.so has text relocations

把targetSdkVersion降级到22就可以了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)

    Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)

    这篇文章主要介绍了Android编程中TextView字体属性设置方法,包括大小、字体、下划线、背景色等设置技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Andriod事件分发事件由来初识

    Andriod事件分发事件由来初识

    这篇文章主要为大家讲解了Andriod事件分发事件由来的初步认识,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Android使用Jsoup解析Html表格的方法

    Android使用Jsoup解析Html表格的方法

    这篇文章主要介绍了Android使用Jsoup解析Html表格的方法,涉及Android中Jsoup的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12
  • Android使用Scrolling机制实现Tab吸顶效果

    Android使用Scrolling机制实现Tab吸顶效果

    app 首页中经常要实现首页头卡共享,tab 吸顶,内容区通过 ViewPager 切换的需求,以前往往是利用事件处理来完成,但是这些也有一定的弊端和滑动方面不如意的地方,本文我们利用NestedScrolling机制来实现,感兴趣的朋友可以参考下
    2024-01-01
  • Android使用ImageView 制作透明圆弧实例代码

    Android使用ImageView 制作透明圆弧实例代码

    这篇文章主要介绍了Android使用ImageView 制作透明圆弧实例代码的相关资料,需要的朋友可以参考下
    2016-05-05
  • 21天学习android开发教程之SQLite分页读取

    21天学习android开发教程之SQLite分页读取

    21天学习android开发教程之SQLite分页读取,Android包含了常用于嵌入式系统的SQLite,免去了开发者自己移植安装的功夫,感兴趣的朋友可以参考一下
    2016-02-02
  • Flutter上线项目实战记录之路由篇

    Flutter上线项目实战记录之路由篇

    这篇文章主要给大家介绍了关于Flutter上线项目实战记录之路由篇的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Flutter具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Android封装高德地图定位工具类Util的详细步骤

    Android封装高德地图定位工具类Util的详细步骤

    这篇文章主要给大家介绍了关于Android封装高德地图定位工具类Util的相关资料,封装成工具类后非常方便以后的项目,可以直接使用,文中也给出了详细的实例代码,需要的朋友可以参考下
    2021-07-07
  • Android自定义View多种效果解析

    Android自定义View多种效果解析

    这篇文章主要为大家详细介绍了Android自定义View多种效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • android recyclerview模拟聊天界面

    android recyclerview模拟聊天界面

    这篇文章主要为大家详细介绍了android Listview模拟聊天界面的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03

最新评论