visual studio编写jni踩坑

这个东西说简单也简单,但是一不小心就如坑,以至于导致我多次踩坑都没成功,今天总算成功了!
1、新建项目要使用空项目,否则有搞不完的坑等着你。
2、添加java环境目录下的lib和lib\x86目录到工程的属性->配置属性->VC++目录->包含目录。
3、配置属性生成格式为dll,而不是exe,
4、配置输出的为x64而不是x86(你修改你会发现又要重新配置)
5、头文件不用拖拽进去而是先放到项目目录然后添加引用,不然你会发现怎么搞都没法添加头文件,哭晕在厕所。
c代码

#include<jni.h>
#include<stdio.h>
#include<iostream>
#include<string.h>
//#include<>
int main() {
    //cout<<"333"<<endl
    return 0;
}
extern "C"
JNIEXPORT jstring JNICALL
Java_cn_qssq666_autojni_MainActivity_stringFromJNI(
    JNIEnv *env,
    jobject /* this */) {
    std::string hello = "Hello from C++";
    return env->NewStringUTF(hello.c_str());
}

java代码

package cn.qssq666.autojni;

public class MainActivity {
// 进入bin根目录 javah -jni cn.qssq666.autojni.MainActivity
    // Java_cn_qssq666_autojni_MainActivity_stringFromJNI(
    static {
        System.load("C:\\Users\\Administrator.DESKTOP-Q7DQAHS\\source\\repos\\ProjectNewDll\\x64\\Debug\\ProjectNewDll.dll");
    }

    public static native String stringFromJNI();

    public static void main(String[] args) {
        System.out.println("exec " + stringFromJNI());
    }
}
image.png

无法成功的,想要下载项目vs源码打个赏,然后我发给你git地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值