如何将JNI(CC++本机代码)添加到现有的Android Studio项目中

如何将JNI(CC++本机代码)添加到现有的Android Studio项目中,第1张

概述就像标题所说 – 如何在不破坏当前项目(包括gradle和proguard设置)的情况下向现有 Android Studio项目添加本机代码? 从现有项目中执行以下步骤: 1.修改build.gradle(模块应用程序)看起来像这样(很多变化!): apply plugin: 'com.android.model.application' model { android. 就像标题所说 – 如何在不破坏当前项目(包括gradle和proguard设置)的情况下向现有 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

4.从java添加调用

像这样

static {    System.loadlibrary("--c-file--");}private native byte my_jni(Context context,byte[] mByte,int i);

改变你的需求.上面的例子加载了c文件(没有扩展名写入) – 在gradle文件中声明的相同,并调用函数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项目中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1240538.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存