Unity使用Android Stdio接入SDK制作AAR包

news2024/11/23 9:06:06

最近需要在Unity2021版本中接入SDK,发现和直接接入SDK有些区别,这里把接入的流程记录一下。

Unity在最新的版本中把UnityPlayActivity.java,从Class.jar中移除,需要在Unity的工程内找到这个文件,并把其加入到Android Stadio内,才能使用。

新建Android Stdio 工程,包名可以随便起

在工程中 New Module

①选择Android Library

②包名要和Unity工程里面相同

③设置SDK最小版本,要和Unity工程SDK版本相同

新建一个Java脚本 MainActivity.java启动时的入口

导入Unity中的class.jar包

路径:Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes 导入到libs文件下  右键libs文件夹下.jar文件,Add As Libray… 

MainActivity需要继承UnityPlayActivity

在Unity新的版本里面Class.jar没有这个类,需要自行找到后加入进去

路径:Unity自定义安装路径\Editor\Data\PlaybackEngines\AndroidPlayer\Source\com\unity3d\player

新建文件夹存放UnityPlayerActivity.java脚本

 

 

 

修改后的AndroidManifest.xml

也要放在Unity工程中,可以把Android Stdio工程内的AndroidManifest.xml直接拖入Unity工程中

 

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.qqlogin.androidtest">
 
    <application
        android:allowBackup="true"
        android:supportsRtl="true"
        >
        <activity android:name="com.qqlogin.androidtest.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data
                android:name="unityplayer.UnityActivity"
                android:value="true" />
        </activity>
    </application>
 
</manifest>

build.gradle依赖项,不修改build.gradle不会生成aar 生成的是apk 

修改依赖项  否则AndroidStudio打包时会报错 

删除多余不用文件 打包arr

 

 这个主要是一些Android的界面设置,在目前的项目用没有使用,如果不删除,会同时打到aar包内,造成安装包增大

生成arr包

 处理aar包 导入Unity中

1.删除libs文件下的classes.jar,是libs文件下 不是 AndroidStudio生成的classes.jar

 2.在压缩包中打开AndroidStudio生成的classes.jar,删除UnityplayerActivity.class

不删除unity打包会失败

注意事项:

1、删除时可以把aar包改成zip,在进行解压,删除里面文件,对于UnityplayerActivity.class在class.jar包内,也是使用同样的方法。

2、删除完之后,再去制作zip包,在打包时,可能多包含一层文件,这里会造成打包失败,找不到对应的资源

错误的zip包

 正确的zip包

可以全选,然后再去制作zip包,之后修改后缀.aar,在放在Unity工程中 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/752899.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【监控系统】Prometheus监控组件Mysql-Exporter配置实战

Mysql-Exporter主要监控Mysql数据库的稳定性、吞吐量、连接情况、缓冲池使用情况、查询性能等各项指标&#xff0c;是我们压测时常常需要监控的一些指标。 目前&#xff0c;Exporter 支持高于5.6版本的 MySQL 和高于10.1版本的 MariaDB。在 MySQL/MariaDB 低于5.6版本时&#…

MobPush 最佳实践:消息重弹

功能概述 消息重弹功能&#xff0c;可在安卓在线通道送达的消息被其他消息挤下去时&#xff0c;重新置顶&#xff0c;增加消息的曝光度和点击率。 适用场景 仅支持Mob通过自有TCP通道下发的通知消息&#xff0c;不支持自定义推送消息支持开发者后台和推送API配置使用 功能使…

安天逆向教程——常用汇编语句

一.汇编基础 二.条件分支 反汇编时更多关注这些条件分支。如果看懂这些条件分支&#xff0c;会对程序的大体逻辑有一个整体的了解。 至于程序里面的细节&#xff0c;有时会省略掉。往往关键的跳转理解了甚至进行一点点的改动&#xff0c;就会使得程序发生翻天覆地的变化。 三…

读书笔记怎么写?《金字塔原理》读书笔记

​生活工作中有很多需要表达的场景&#xff0c;表达最重要的是逻辑清晰&#xff0c;表达出来的想法才能被理解&#xff0c;进而解决生活或工作中的困境。 《金字塔原理》详细地介绍了思维表达的方法&#xff0c;金字塔原理除了能够帮助人们以书面形式组织和表达思想以外&#x…

Vue3 组件之间父子通信

文章目录 Vue3 组件之间父子通信概述选项式API父传子子传父 组合式API父传子子传父 Vue3 组件之间父子通信 概述 所有的 props 都遵循着单向绑定原则&#xff0c;props 因父组件的更新而变化&#xff0c;自然地将新的状态向下流往子组件&#xff0c;而不会逆向传递。 选项式…

虚拟现实:将数字融入现实

随着科技的不断进步&#xff0c;虚拟现实正逐渐走进我们的现实生活&#xff0c;为我们带来了许多新的体验和可能性。虚拟现实技术将数字世界与真实世界融合在一起&#xff0c;为我们创造了令人惊叹的沉浸式体验。让我们一起探索虚拟现实正在走进现实的意义和影响。 虚拟现实为我…

C语言进阶之通讯录的实现(静态版和动态版)以及动态内存管理

通讯录的实现及动态内存管理 1.通讯录实现要求2.静态版通讯录实现2.1 contact.h文件实现2.2 contact.c文件实现2.3 main.c文件实现2.4 静态版通讯录全部文件代码 3.动态内存管理3.1 为什么存在动态内存分配3.2 动态内存函数的介绍3.3 常见的动态内存错误3.4 C/C程序的内存开辟3…

海盗搜身-2022年全国青少年信息素养大赛Python国赛第9题

[导读]&#xff1a;超平老师计划推出《全国青少年信息素养大赛Python编程真题解析》50讲&#xff0c;这是超平老师解读Python编程挑战赛真题系列的第11讲。 全国青少年信息素养大赛&#xff08;原全国青少年电子信息智能创新大赛&#xff09;是“世界机器人大会青少年机器人设…

vue3+ts+element-plus管理系统实际开发业务之增删改查

文章目录 功能一&#xff1a; 实现一个表格增、删、改、查功能✏️ 1. 表格、添加按钮、删除按钮、搜索框和搜索按钮、编辑按钮添加&#x1f4d2; 运行后页面效果&#xff1a;如下 ✏️ 2. 使用添加按钮添加一条新纪录&#xff0c;逻辑点击按钮弹出带有表单的弹窗进行输入添加。…

Elasticsearch--查询(nested、join)

nested 嵌套类型 数据的某个值是json、object对象&#xff1b;不再是简单的数据类型&#xff0c;或者简单数据类型的数组&#xff1b;那么还用之前的查询方式就有问题了。因为ES在存储复杂类型的时候会把对象的复杂层次结果扁平化为一个键值对列表 。此时&#xff0c;需要用n…

一文了解OLED拼接屏优点

随着科技的不断发展&#xff0c;显示技术也在不断地更新换代。其中&#xff0c;OLED技术是目前最为先进的显示技术之一。 OLED拼接屏是一种利用OLED技术制作的大屏幕显示设备&#xff0c;可以将多个OLED屏幕拼接在一起&#xff0c;形成一个更大的显示屏幕。济南OLED拼接屏是一…

分布式锁的实现方式

文章目录 一、分布式锁概述1.1 为什么需要分布式锁1.2 概述分布式锁1.3 分布式锁的特性1.4 分布式锁的类型1.5 实现重点 二、Mysql数据库实现分布式锁2.1 表结构2.2 加锁2.3 解锁2.4 锁超时2.5 实现重入锁 三、Redis实现分布式锁3.1 加锁3.2 解锁3.3 锁超时3.4 redlock的容错性…

设计模式-简单工厂模式

文章目录 简单工厂设计模式什么是简单工厂?为什么使用简单工厂工厂模式代码实现简单工厂优缺点优点&#xff1a; 简单工厂设计模式 学习视频 什么是简单工厂? 简单工厂模式属于类的创建型模式&#xff0c;又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实…

GitLab CICD Day 08 - 环境变量

1.局部/全局环境变量 stages:- testing # stage编排- build- deployvariables:global_var: "全部变量" #全部变量build_image:stage: buildvariables: #局部环境变量my_name: "局部环境变量" tags:- shell script:- …

14款奔驰R400升级ACC自适应巡航系统,增加您的行车安全性

有的时候你是否厌倦了不停的刹车、加油&#xff1f;是不是讨厌急刹车&#xff0c;为掌握不好车距而烦恼&#xff1f;如果是这样&#xff0c;那么就升级奔驰原厂ACC自适应式巡航控制系统&#xff0c;带排队自动辅助和行车距离警报功能&#xff0c;感受现代科技带给你的舒适安全和…

window.getComputedStyle

遇见一个问题&#xff0c;一个元素样式用的 固定定位。但是 top 属性没有在 元素树&#x1f332;种显示。js获取不到。这个方法可以获取到 style 里面设置的样式

OI中好用的技巧——c++快读快写

在写一些题时&#xff0c;发现不对读写进行处理会 TLE or WA 此时就需要降低读写的时间 c读写速度 &#xff1a; 普通写法 < scanf和printf写法 ≈ 缓存禁用写法 < 字符处理写法 普通写法&#xff08;读写最慢&#xff09; #include<iostream> using namespace…

车载调频发射机-德阳广播电台应用机关车队车载电台移动解说系统

车载调频发射机-德阳广播电台应用机关车队车载电台移动解说系统 北京海特伟业科技任洪卓发布于2023年7月13日 一、车载调频发射机-机关车队车载电台移动解说系统用户需求 机关车队主要承担领导干部公务用车以及重要会议、公务接待、调研应急等公务用车的服务保障工作。为认真…

前段开发概述

目录 网站概述 网站&#xff08;web site&#xff09;&#xff1a; 网页概述 网站开发流程&#xff1a; HTML基本概念 开发工具的选择 网站概述 网站&#xff08;web site&#xff09;&#xff1a; 按照一定规则&#xff0c;使用HTML超文本标记语言等工具制作的。用于展示…

FPGA——静态数码管

文章目录 一、实验环境二、实验原理三、实验任务四、实验过程4.1 time_count模块4.2 seg_led_static模块4.3 top_seg_led_static模块4.4 引脚配置 五、仿真5.1 仿真代码5.2 仿真结果 六、实验结果七、总结 一、实验环境 quartus 18.1 modelsim vscode Cyclone IV开发板 二、实…