大佬教程收集整理的这篇文章主要介绍了如何将JNI(C/C++本机代码)添加到现有的Android Studio项目中,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1.修改build.gradle(模块应用程序)看起来像这样(很多变化!):
apply plugin: 'com.android.model.application' model { android.signingConfigs { create ("myConfig") { keyAlias '--your-key-alias--' keypassword '--key-password--' storeFile file('--/path/to/keystore.jks--') storepassword '--store-password--' } } android { compileSdkVersion 25 buildToolsVersion '25.0.2' defaultConfig { applicationId "--your.app.name--" minSdkVersion.apiLevel 19 targetSdkVersion.apiLevel 25 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled true proguardFiles.add(file('proguard-android-optimize.txt')) proguardFiles.add(file('proguard-rules.pro')) signingConfig = $("android.signingConfigs.myConfig") } } ndk { modulename "--c-file--" ldLibs.addAll(["android","log"]) } } android.dexOptions { javaMaxHeapSize "2048m" } } dependencies { compile fileTree(dir: 'libs',include: ['*.jar']) TESTCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:25.3.1' }
您可以复制/粘贴上面的代码,并使用“–value–”修改至少值以匹配您的值.
2.修改build.gradle(项目)
它说的是这样的:
dependencies { classpath 'com.android.tools.build:gradle:2.3.3' }
对此:
dependencies { classpath 'com.android.tools.build:gradle-experimental:0.9.3' }
我的示例0.9.3中的数字是最新版本的gradle-experimental,可以找到here.最后将gradle-wrapper.properties中的gradle版本更改为Android studio推荐的版本(如果您还没有).
3.移动proguard设置文件
proguard-android-optimize.txt到app / proguard-android-optimize.txt
像这样
static { System.loadLibrary("--c-file--"); } private native byte my_jni(Context context,byte[] mByte,int i);
改变你的需求.上面的例子加载了c文件(没有扩展名写入) – 在gradle文件中声明的相同,并调用@L_990_26@my_jni,传递应用程序的Context,一些字节数组和一些int,期望函数返回一个字节.
5.在JNI中创建函数:
现在,您的功能名称以红色突出显示 – 允许Android studio创建它创建功能…单击行上的红色指示灯.这将在您的c文件中创建该函数并将焦点更改为它.
完成
进一步阅读here.
提示:
>注意释放malloc的所有内容,为每个GetByteArrayElements释放ReleaseByteArrayElements等等>注意如何正确地将一些危险值从C返回到Java,如数组和字符串
以上是大佬教程为你收集整理的如何将JNI(C/C++本机代码)添加到现有的Android Studio项目中全部内容,希望文章能够帮你解决如何将JNI(C/C++本机代码)添加到现有的Android Studio项目中所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。