大致步骤如下:
1.创建新的 Android Studio 工程
2.为此 Android Studio 工程创建 Android Library 类库(也就是一个 Module)(后面就是用它生成 jar)
3.生成 Jar
4.将 jar 导入 Unity 工程中的 Assets/Plugins/Android/
5.使用 AndroidJavaObject.Call 等方式调用

创建新的 Android Studio 工程#

1. 设置好 名称 、 路径 、 包名
这里的 Package name 只是这个 Android Studio 工程的包名,而我们需要的并不是这个工程,我们后面会在这个工程内新建一个 Android Library 类库,这个类库才是我们要导出 Jar 的对象。所以,这个 Android Studio 工程的 Application name 、Company Domain 、Package name 这三个参数可以随意填写,并不需要与正式工程相同。

2. 选择 SDK 版本
这里的意思是选择一个可兼容的最低的 Android 系统版本。自行选择,随意。

3. 选择 Empty Activity
直接选择空的 Activity 就可以了,因为这个是本工程的 Activity,并不是我们要导出的 Jar 的 Activity。

4. 给此 Activity 定义参数
同样,因为这个是本工程的 Activity,并不是我们要导出的 Jar 的 Activity。所以随意填写,和要导出的 Jar 无关。

5. 新建 Module

6. 选择 Android Library

7. 输入 Module 的参数
这里的参数就是要导出 jar 的 Android Library 类库参数。Package name 与正式工程一致。 Application/Library name 就是就填你要导出的 jar 插件的名称。Module name 自动填写就不用管了。

8.找到 Unity 中的 classes.jar 导入到这个 Module 的 libs 中。classes.jar 在安装路径的相对路径如下:
\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\classes.jar
(Project 视图下可以看到 libs 文件夹)

9.把 classes.jar 加入依赖。点击 File->Project Structure

Modules 选择自己新建的 Android Library,中间栏点 Dependencies 标签,然后点击右侧加号+,选择 File Dependency,然后找到自己拷贝进来的在 libs 目录下的 classes.jar 点击OK

9.给 Module 添加 Activity Class

给新建的 Class 命名。输入 Name 然后点击 OK。

package com.example.myjar;

import android.content.Intent;
import android.os.Bundle; import com.unity3d.player.UnityPlayerActivity; public class MyActivity extends UnityPlayerActivity {
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
} public void ShareText(String message, String body) {
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, message);
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
startActivity(Intent.createChooser(sharingIntent, "Share via"));
} }

作者:耳朵里有只风
链接:https://www.jianshu.com/p/8256c0da444a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

第一行的 "com.unity3d.player.UnityPlayer" 是需要调用的接口所在的 Activity 所在的包名,如果是 unity 主 Activity ,就可以直接使用 "com.unity3d.player.UnityPlayer",如果是其他插件包,就使用那个包的包名。

16. 效果

//https://www.jianshu.com/p/8256c0da444a
https://www.cnblogs.com/Jason-c/p/6743385.html
https://www.jianshu.com/p/86b275da600e
https://blog.csdn.net/hnzmdlhc/article/details/89296388

Android Android Studio 如何导出 Jar 给 Unity 使用的更多相关文章

  1. Android Studio下导出jar包和aar包

    Android Studio下导出jar包和aar包 jar包和aar包的区别 步骤 1. 创建Android工程 创建工程比较简单,不错复述 2. 创建一个Library(Module) 创建了一个 ...

  2. Android Studio如何导出可供Unity使用的aar插件详解

    http://www.cnblogs.com/xtqqkss/p/6387271.html 前言 项目之前使用Eclipse导出的jar文件来做与Android交互,最近因为工作需要需使用Androi ...

  3. Eclipse导出jar包Unity打包错误

    前几天接SDK使用的是Android Studio昨天打开AndroidStudio后自动更新了gradler然后失败了然后AndroidStudio就挂了.就是用之前的方法Eclipse到处jar包 ...

  4. Unity 3D与Android Studio安卓交互之-导出jar包

    u3d与安卓 jar 包交互 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...

  5. Android Studio安卓导出aar包与Unity 3D交互

    Unity与安卓aar 包交互 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分 ...

  6. android studio 使用gradle 导出jar包,并打包assets目录

    警告:本文年久失修. 随着android studio的升级 ,gradle的升级,严格按照本文的代码去做可能不会成功,希望依然可以作为解决问题的思路. 最近项目在做一个sdk,供别的开发者使用,所以 ...

  7. [转]--android studio 使用gradle 导出jar包,并打包assets目录

    转自: http://www.cnblogs.com/wuya/p/android-studio-gradle-export-jar-assets.html   最近项目在做一个sdk,供别的开发者使 ...

  8. Android Studio导出Jar包

    这篇博客将介绍一下如何用Android Studio导出jar包,希望能给大家带来帮助. 首先需要修改build.gradle文件,在Android Studio中会显示多个build.gradle文 ...

  9. Android Studio 导出jar包

    不像在Eclipse,可以直接导出jar包.AndroidStudio只可以生成aar包. 在网上看到许多朋友问怎么可以像Eclipse一样导出jar包,其实我们只要知道它的原理就可以了. 用jar命 ...

随机推荐

  1. webpack output.publicPath

    output.publicPath string function 对于按需加载(on-demand-load)或加载外部资源(external resources)(如图片.文件等)来说,outpu ...

  2. Unity 调用jar闪退 解决方案

    { https://www.cnblogs.com/YZFHKMS-X/p/11864496.html }

  3. 【NIO】IO与NIO的区别

    一.概念 NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多.在Java API中提供了两套N ...

  4. 模数循环节——cf547A

    campjls讲过模数循环节的问题,今天做cf才做到这类题 h1->a1的长度为len1,a1->a1的长度为cir1 h2->a2的长度为len2,a2->a2的长度为cir ...

  5. BulkLoad加载本地文件到HBase表

    BulkLoad加载文件到HBase表 1.功能 将本地数据导入到HBase中 2.原理 BulkLoad会将tsv/csv格式的文件编程hfile文件,然后再进行数据的导入,这样可以避免大量数据导入 ...

  6. CF C. Fly

    题目 题目大意:第一行给出一个数n,代表有n个点,第二行给出火箭的自重,第三行给出每个点去时每吨需要的燃料,第四行给出每个点返程时每吨需要的燃料.求出发时携带的最小燃料数 分析:这题我们只要逆向思维就 ...

  7. makefile.new(7117) : error U1087: cannot have : and :: dependents for same target

    makefile.new(7117) : fatal error U1087: cannot have : and :: dependents for same target(2012-05-21 2 ...

  8. jeecg随笔 -- 实体关联属性的设计

    转载:https://www.iteye.com/blog/1868620 在jeecg 里 ,是根据数据库生成实体的,很多关联关系需要自己进行进一步整理才能满足我们的业务需求 例如外键关系 由于很多 ...

  9. 1.3 React 组件

    1.3.1 React 组件介绍 在 React 中组件是第一元素,是 React 的基础,一个 React 应用就是基于 React 组件的组合而成.前面的 JSX 练习过后,大家应该对 React ...

  10. Java 反射获取私有方法

    通常我们创建一个类时,它的私有方法在类外是不可见的,但是可以通过反射机制来获取调用.具体的反射机制的介绍大家自己百度. 所以反射可能会破坏我们的单例模式,当然解决方案也是有的,就是做个标记记录次数,第 ...