UE4链接Android并调用解压缩zip的接口

参考的前辈大佬们的文章

正文

创建一个新的UE4插件/模块

  1. 创建插件:在项目中点击Plugin并创建一个新的空白插件,这个不再追谁
  2. 创建模块:如果你想把这个功能合并到某个插件,可以选择创建模块,创建新的模块文件、.build.cs、与模块名称相同的.h与.cpp文件放置在目标插件或项目的source文件下,最简单的方法是直接复制一个空白插件的模块,并更改名称类名等统一。模块文件路径
    注意,模块需要在uplugin或uproject文件中注册,我将其填写 为runtiome类型,加载时间为默认。

添加xml文件

  1. 创建xml文件并放置在build文件目录的同级位置,并将名称改为xxx_UPL,所有复制文件链接java类库的操作都在这个xml中实现,我的建议是在复制一份引擎插件AndroidCamera中的xml文件,其中已经实现好了各种标签。
    在这里插入图片描述
    2.在build.cs中注册该文件,加载launch模块,并添加同路径下的UPL文件
    在这里插入图片描述

添加JAVA代码

APL写法参考了这篇

  • 因为我们这个功能很简单,不需要link库,所以只用到了 gameActivityImportAdditions与gameActivityClassAdditions这两个标签,前者用于引入包含文件,后者用来添加函数。
  • 我添加了两个函数,一个用于Java调用C++,一个用于C++调用Java子线程进行解压缩并回调,这里我遇到了一些问题,我看到某教程的课程名显示Java可以调用C++的类成员函数,我并没有找到方法(教程好贵舍不得花钱),我这里只是调用了类外函数,并且暂时是准备用一个单例接受回调实现功能了。
 <!-- imports -->
  <gameActivityImportAdditions>
   <insert>
     import java.io.*;
     import java.util.ArrayList;
     import android.os.AsyncTask;
     import java.util.Collection;
     import java.util.Enumeration;
     import java.util.zip.ZipEntry;
     import java.util.zip.ZipException;
     import java.util.zip.ZipFile;
     import java.util.zip.ZipOutputStream;
     import java.util.zip.ZipInputStream;
   </insert> 
  </gameActivityImportAdditions>

 <!-- Action -->
	<gameActivityClassAdditions>
    <insert>
  <!-- 01 -->
     <!<
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值