UE4 Android第三方库导入,JNI调用详解

本文详述了如何在UE4中导入和调用Java库,包括创建和打包Java库,配置UE4项目,使用JNI进行跨平台调用,以及在蓝图中调用Java方法的步骤。

概述

本文实现的功能:

  1. UE4接入JAVA库
  2. 由UE4调用安卓端java代码,再回调UE4C++代码

涉及知识点:

  1. AndroidStudio基础使用
  2. JNI基础

新建一个Jar或者arr库

File->New->NewProject->EmptyActivity
在这里插入图片描述
切换至Android视窗,在app上右键->New->Module->AndroidLibrary
在这里插入图片描述
库的目录结构:
在这里插入图片描述
在TestClass编写代码:

package com.yours.testlib;

import android.util.Log;

public class TestClass {
   
   
    public static void TestFunc(){
   
   
        Log.v("GZJ","[GZJ] Call TestFunc()");
    }
}

在 testlib的build.gradle编写

task deleteJar(type: Delete) {
   
   
    delete 'libs/TestLib.jar'
}

task exportjar(type: Copy) {
   
   
    from('build/intermediates/aar_main_jar/release/')
    into('libs/')
    include('classes.jar')
    rename('classes.jar', 'TestLib.jar')
}
exportjar.dependsOn(deleteJar, build)

然后Build->MakeProject
然后切换至Terminal窗口:输入gradlew exportjar
稍等一会,在testlib的libs目录下会生成一个TestLib.jar,这就是我们要的文件
需要arr文件的话,在buiild/outputs/arr/TestLib-release.arr

UE4导入Java库并调用

新建一个UE4 C++项目,Edit->Plugin->NewPlugin
选择BlueprintLibrary->CreatePlugin
切换至VS
以下是插件目录结构,没有文件的就新建文件,我的最终目的是导入安卓的一个midi库,所以命名是MidiDriver开头
在这里插入图片描述

首先记得在.Build.cs包含对应模块和APL
需要使用JNI则必须添加Launch模块依赖

MidiDriverPlugin.Build.cs部分

if(Target.Platform == UnrealTargetPlatform.Android)
{
   
   
	PrivateDependencyModuleNames.AddRange(new
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值