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
  • 相关阅读:
    【渗透攻防】深入了解Windows
    浅析B/S架构数据库连接方式
    剖析泄露你银行卡密码的钓鱼网站:真假“10086”
    红黑树的删除和加入节点
    Unity里包裹Debug,且不影响Debug的重定向
    Java向上转型和向下转型(附具体样例)
    Javascript 方法apply和call的差别
    普通androidproject转换为C/C++project之后,再还原成androidproject的解决方式
    初识双网卡
    js面向对象编程: js类定义函数时prototype和this差别?
  • 原文地址:https://www.cnblogs.com/YZFHKMS-X/p/11853937.html
Copyright © 2011-2022 走看看