Unity3d AndroidStudio 导出 jar

Unity3d AndroidStudio 导出 jar

androidstudio 打包 jar 的各种坑

  1. 用 androidstudio 新建一个项目 此时注意 这一步需使用 Add No Activity 这个选项 这里写图片描述

2.项目建好后 添加 unity库 在unity安装目录下找到 classes.jar 看起来是这样这里写图片描述
ctrl+c 复制这个文件 ctrl+v 张贴文件到 androidstudio 的lib文件夹上 看起来是这样这里写图片描述
点击确定 选择刚才黏贴的 classes.jar 文件 右键 选择 Add as library 此时添加成功了unity的jar库 他会出现在build.gradle 文件的 dependencies 中这里写图片描述

3.新建一个 javaclass 文件 为了快速实现效果 可以黏贴一下代码 到新建的java文件

package com.example.chen.myapplication;
import android.app.AlertDialog;

import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;

/**
 * Created by chen on 2016/6/19.
 */
public class dds extends UnityPlayerActivity
{
    public static void Show(final String title, final String content)
    {
        UnityPlayer.currentActivity.runOnUiThread(new Runnable() {
            public void run() {
                AlertDialog.Builder builder = new AlertDialog.Builder(UnityPlayer.currentActivity);
                builder.setTitle(title).setMessage(content).setCancelable(false).setPositiveButton("OK", null);
                builder.show();
            }
        });
    }
}

4.修改 bulid.gradle 内容 添加一下项

//注意 注意 这里是 libray 原来是 application 一定要改掉这里 否则会生成失败
apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        //这里原文件 的 applicationId 也要去掉![这里写图片描述](https://img-blog.csdn.net/20160619174956441)
        //applicationId "com.example.chen.myapplication"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile files('libs/classes.jar')
}


//删除旧的jar包
task deleteOldJar(type: Delete) {
    delete 'release/AndroidPlugin.jar'
}

//到出jar包
task exportJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into('release/')
    include('classes.jar')
    //导出包重命名  注意 注意  这里如果不重命名 打包后会和unity的 classes.jar 资源重复 冲突
    rename('classes.jar', 'AndroidPlugin.jar')
}

exportJar.dependsOn(deleteOldJar, build)

5.build.gradle 改好后 就可以在Gradle 面板 的other 选项中找到 exportJar 这个任务 双击 即可生成jar文
这里写图片描述

6生成后即可在 项目的 release下面找到 生成完成的 AndroidPlugin.jar 文件 接下来在unity工程中 新建Plugins文件夹 plugins下面 再新建 Android文件夹 此时使用android代码 还需要在androidManifest中注册它 我们可以在unity 安装文件中找到 AndroidManifest这个文件 拷贝到 Android目录下这里写图片描述
在 AndroidManifest.xml 注册上 新建的javaclass 类这里写图片描述

7.在unity中 新建一个 c#脚本 代码如下

using UnityEngine;
using System.Collections;

public class AndroidDemo : MonoBehaviour
{

void OnGUI()
{
    // 通过API调用对话框  
    if (GUILayout.Button("调用安卓Jar中的函数 ShowDialog !", GUILayout.Height(50)))
    {
        // Android的Java接口  
        AndroidJavaClass jc = new AndroidJavaClass("com.example.chen.myapplication.dds");
        jc.CallStatic("Show", "hellow", "Test Message");
    }
}

}

8.在unity场景中任意挂一个 物体上 即可打包测试 结果如下图这里写图片描述

参考链接android studio 导出 jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值