zoukankan      html  css  js  c++  java
  • Android Android Studio 如何导出 Jar 给 Unity 使用

    大致步骤如下:
    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 在安装路径的相对路径如下:
    EditorDataPlaybackEnginesAndroidPlayerVariationsmonoReleaseClassesclasses.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
  • 相关阅读:
    Flask 基础组件(五):请求和响应
    Flask 基础组件(四):模板
    Flask 基础组件(三):路由系统
    Flask 基础组件(二):配置文件
    Flask 基础组件(一):基本使用
    李航统计学习方法(第二版)基本概念(三):统计学习方法三要素
    李航统计学习方法(第二版)基本概念(二):统计学习的分类
    李航统计学习方法(第二版)基本概念(一):统计学习、对象、目的以及方法等
    SQLAlchemy(四):SQLAlchemy查询高级
    CSS Flexible Box Layout: Advanced layouts with flexbox (Flexible Box Layout) – CSS 中文开发手册
  • 原文地址:https://www.cnblogs.com/YZFHKMS-X/p/11853937.html
Copyright © 2011-2022 走看看