Unity3d AndroidStudio 导出 jar
androidstudio 打包 jar 的各种坑
- 用 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场景中任意挂一个 物体上 即可打包测试 结果如下图