
打开AS,新建–>project
切换到project项目下面
找到app Moudle
找到libs,将unity3d 提供的jar包拷贝到libs下面,右键 ->open Moudle setting ,选择Moudle ,点击dependence
添加lib
选择拷贝到libs下面的文件unity_class.jar
MainAvtivity extends UnityPlayerActivity
注意应将setContentView()注释掉,不加载界面
终于到修改build.gradle
打开app的build.gradle,将apply plugin: ‘com.android.application’修改为apply plugin: ‘com.android.library’,并且删除applicationId “com...*”
如果需要混淆打包配置buildtypes
buildTypes {
release {
// Set minifyEnabled to true if you want to run ProGuard on your project
minifyEnabled true
//对齐
zipAlignEnabled true
//移除无用的resource 文件
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
}
}
不需要混淆打包就修改minifyenable false;

修改完gradle 点击Sync Now,完成但是找到 gradle project窗口,找到app(本Moudle的gradle),右键 refresh external project,打开build,找到build命令,运行,生成aar文件,文件通常声称在outputs->aar里面,debug是没有混淆的,release是混淆的。
但是但是,我们不需要混淆所有的类文件,这就必须找到gradle里面的这句话
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-unity.txt’
,这里的混淆的规则文件在proguard-unity.txt 里面
-keep是不混淆
-keep class *.R
不混淆R文件
-keep class com.example.zhcase.unity3d.MainActivity{*;}
不混淆MainActivity类
-keep class com.example.zhcase.unity3d.BLEDeviceManager{*;}
-keep class com.example.zhcase.unity3d.BleDevice{*;}
-dontwarn com.unity3d.player.**
-keep class com.unity3d.player.UnityPlayerActivity{*;}
-keep class com.unity3d.player.* {;}
不混淆com.unity3d.player包下面所有的类
大概就是这样子 不明白的可以查下百度
类似的文章还是很多的
*在build.gradle 加入
//task makeJar(type: Copy) {

// delete ‘build/libs/mysdk.jar’
// from(‘build/intermediates/bundles/release/’)
// into(‘build/libs/’)
// include(‘classes.jar’)
// rename (‘classes.jar’, ‘mysdk.jar’)
//}
//
//makeJar.dependsOn(build)*
大概的含义就是新建一个task,删除旧的mysdk.jar包将jar包拷贝到libs下面,mysdk是导出的jar的包名。
还是Sync Now,在gradle project界面的other的以下找到exportjar,运行输出jar包,要是minifyEnabled还是true,输出的jar包还是混淆的。
为了测试自己导出的aar包是否只用,我自己新建了一个android project,就做一个简单的界面。
在As project中引用aar 还是必须将aar拷贝到libs文件夹,在gradle的dependencies 中加入
compile(name:’app-release’, ext:’aar’)
name后面的是aar包的包名,
rebuild project,成功的话在project会在build->intermediates下面提到explored-aar中含有这个包
然后根据普通的libs包用就可以了
导入至unity3d之前需要将原本引入的unity3d_classes.jar文件删除,因为unity3d编译时会生成自己的jar包,要是混淆打包的aar就有一个问题,需要-keep class 所有的jar文件不被混淆,然后用解压工具删除classes.jar的包含的unity3d_classes的文件。
在unity工程中Assets->plugins->android

Mainfest的文件是从As中项目拷贝过来的,unity的projectname和Mianfest的packagename一致
AndroidJavaClass jc = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”);
AndroidJavaObject jo = jc.GetStatic(“currentActivity”);
jo.CallStatic(“StarScane”);
带参数
public void connect(string address)
{
#if UNITY_ANDROID
text.text += “连接设备”;
AndroidJavaClass jc = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”);
AndroidJavaObject jo = jc.GetStatic(“currentActivity”);
jo.CallStatic(“connect”,address);
#endif
}
最后build&run,我在这一步还是遭遇这些难题,配置SDK路径,显示platforms的Api is 0 ,这类错误基本是SDK路径错误,或者去AS下面的SDKManager更新下SDk版本,也可能会和build tools有关系,反正认为有问题的你都下载吧 我就是这么解决的,JDK的模式跟AS的一样就好
build&run运行到手机就可以
[TOC]
感谢的分享,大家可以听听,一步步做,慢慢查问题,还是可以做起来的,虽然我打个包花了我好几天
再见


as导出jar到unity3d 相关内容
Unity项目之AndroidStudio打jar包
阅读数 73
前言在Eclipse中我们都明白可以选中java代码之后到处为jar包,但是目前普遍都是android studio开发,所以我们必须掌握下as的打jar包流程。使用unity做游戏,避免不了必须跟android和ios交互,有些android的sdk在接入时,我们经常打包都必须导出as中player jar 包,然后更改java代码,但是即使直接把软件代码读入jar包,那么就相当方便了,接下来是具体教程。步骤...
博文来自: qq563129582
unity2017.3.0f和AS3.1 多manifest清单文件和jar包探索【一】
阅读数 214
因为今天有一个项目必须用AS制作arr和jar包,给unity调用,但是用到了多个,还有网上的软件也是清单文件,这就导致了矛盾,查看了网上众多的资料跟博客,都没有很好的解决办法,我只是在尝试探索,所以写下这篇文章,以供记忆跟学习。如何打arr包给Unity用:AndroidStudio导出aar包给Unity(最具体)如何使用build导出jar、manifest、res文件给Uni...
博文来自: Hym_eric
Android导出aar插件供Unity使用或者借助android scheme启动unityApp
阅读数 1264
一:在android Studio导出aar插件到unity 说明一下aar与jar插件的区别:jar是只包括配置文件跟class文件,而aar插件是包含资源的,两者都可用压缩工具开启。 首先打开as建立新的项目(一直下一步下一步就行了)打开之后即使你的还有我这些错误报错(没有的可以省略这一步,不知道是不是我的as有问题,家里的没毛病player jar 包,公司的就这
博文来自: K20132014
AndroidStudio嵌入Unity
阅读数 292
一、首先在unity中写上自己的功能代码二、然后再unity中导入android项目文件三、新建androidstudio工程四、把unity导出的libs文件夹下的jar包复制到as工程中的libs下,然后单击右键添加到(Add As Library)五、把unity导出的项目文件夹里的assets和jniLibs复制到as的src/main下边,并且把UnityP...
博文来自: qq_39353597
使用aar将微信支付SDK接入Unity
阅读数 136
之前构建使用aar接入SDK,趟了无数的坑,尤其是微信的个别,现做一下总结微信支付SDK导出aar接入Unity声明:开发环境:MACUnity3D 版本2017.2.0f3(下简称Unity)Android Studio 版本3.4.1(下简称AS)微信官方SDK jar包 版本5.4.0包名涉及项目,简称com.aaa.bbb接入步骤:首先,创建好空工程后,将微信jar...
博文来自: u011134889
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-141631-1.html
让她永远站最边边上
凡是敌人反对的我们就支持
你还在为美爹洗地