Xamarin.Android 引用so

在这里插入图片描述

  		[DllImport("sqleet", EntryPoint= "execute_test")]
        public static extern string execute_test(string path);
        //java
        [DllImport("native-lib", EntryPoint = "Java_com_km_demo_myapplication_MainActivity_stringFromJNI")]
        public extern static IntPtr stringFromJNI(IntPtr env, IntPtr thiz);
		//java
        [DllImport("hello", EntryPoint = "Java_com_km_demo_myapplication_hello_add")]  //省略掉lib前缀和.so 后缀
        //public static extern int add(IntPtr env, IntPtr thiz, int i, int j);

        [DllImport("hello")]  //省略掉lib前缀和.so 后缀
        public static extern int add( int i, int j);

        [DllImport("hello")]  //省略掉lib前缀和.so 后缀
        public static extern string getString(string str);
	//java 字符串
   var zz = stringFromJNI(System.IntPtr.Zero, System.IntPtr.Zero);
   Java.Lang.String ss = Java.Lang.Object.GetObject<Java.Lang.String>(zz, JniHandleOwnership.TransferLocalRef);
	//普通字符串
	string str = getString("abc");

普通的

java

#include <jni.h>
#include <string>

extern "C" JNIEXPORT jstring JNICALL Java_com_km_demo_myapplication_MainActivity_stringFromJNI(
        JNIEnv* env,
        jobject /* this */) {
    std::string hello = "Hello from C++";
    return env->NewStringUTF(hello.c_str());
}


//
// Created by Administrator on 2020/3/18.
//
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_km_demo_myapplication_hello */

#ifndef _Included_com_km_demo_myapplication_hello
#define _Included_com_km_demo_myapplication_hello
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_km_demo_myapplication_hello
 * Method:    add
 * Signature: (II)I
 */
JNIEXPORT jint JNICALL Java_com_km_demo_myapplication_hello_add
        (JNIEnv *, jobject, jint i, jint j){
    return i+j;
}

int add(int i, int j){
	return i+j;
}
#ifdef __cplusplus
}
#endif
#endif


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值