AndroidStudio配置Jni

    xiaoxiao2021-03-25  124

    Eclipse配置Ndk开发

    之前了解过Eclipse配置Ndk环境,今天我们来了解下As是如何进行Ndk环境搭建的

    安装ndk

    配置path环境变量(我看网上好多需要配置,我测试过不需要配置也行,应该编译时候内置了)

    E:\GD_AS\sdk\ndk-bundle;

    在main中新建文件夹jni

    Android.mk

    LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello-jni LOCAL_SRC_FILES := hello-jni.c include $(BUILD_SHARED_LIBRARY)

    hello-jni.c

    #include <string.h> #include <jni.h> JNIEXPORT jstring JNICALL Java_com_goinsec_myapplication_MainActivity_stringFromJNI(JNIEnv *env, jobject instance) { return (*env)->NewStringUTF(env, "Hell JNoooooI !"); }

    Java_com_goinsec_myapplication_MainActivity_stringFromJNI 包名类名调用jni方法名

    MainActivity代码

    package com.goinsec.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends AppCompatActivity { public native String stringFromJNI(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView tv = (TextView) findViewById(R.id.sample_text); tv.setText(stringFromJNI()); } static { System.loadLibrary("hello-jni"); } }

    gradle配置

    apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "24.0.2" defaultConfig { applicationId "com.goinsec.myapplication" minSdkVersion 19 targetSdkVersion 24 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { cppFlags "" } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } externalNativeBuild { ndkBuild { path file("src\\main\\jni\\Android.mk") } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.1.1' testCompile 'junit:junit:4.12' }

    解释下上面的配置

    externalNativeBuild { cmake { cppFlags "" } }

    由于最新的as可以直接使用cmake,我这个demo没有用到cmake可以省略

    externalNativeBuild { ndkBuild { path file("src\\main\\jni\\Android.mk") } }

    这个需要配置mk的路径

    最后启动项目即可输出

    最后提示:最新的版本就是直接导入As c库,一键配置即可!!!有时间大伙在去了解了解把,这里就不提了

    转载请注明原文地址: https://ju.6miu.com/read-19344.html

    最新回复(0)