Ar Unity for Android(一)



 

Ar Unity for Android(一)

Unity中调用AndroidJAVA代码

Unityandroid调用c++库的接口

Unityc#调用c++库的接口

 

解决问题:CommandInvokationFailure: Unable to convert classes into dex format.See the

 

Unity中调用AndroidJAVA代码

有一些手机功能,Unity没有提供相应的接口,例如震动,例如不锁屏,例如GPS,例如...

有太多的特殊功能Unity都没有提供接口,这时候,我们就需要通过使用Android原生的ADT编辑器去编写Java代码,然后打包jar导入到Unity工程,然后通过Unity提供的调用Android接口的函数去调用jar包中的函数即可。

 

 

Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)

http://www.xuanyusong.com/archives/667

[Unity3D]调用Android接口

http://www.cnblogs.com/wanqieddy/p/4447594.html

for Android studio

http://blog.csdn.net/chenj_freedom/article/details/48378211

 

 

eclipse下新建一个android工程 ArWorldUnity

 

设置入口的ActivityUnityArActivity

 

 

配置AndroidManifest.xml文件

加入android:theme="@android:style/Theme.NoTitleBar.Fullscreen"全屏显示模式

 

运行出现错误

http://www.nowamagic.net/academy/detail/50161622

这错误很明显,也很简单,原来继承自ActionBarActivity的类必须指定固定的集中Theme风格,而这些Theme风格是需要导入V7中的appcompat LIB库工程,编译后再引用才能引用使用。

打开你项目的AndroidManifest.xml,找到android:theme="@style/xxx",改成v7包里提供的方案就行了。比如:

android:theme="@style/Theme.AppCompat" 黑色系
android:theme="@style/Theme.AppCompat.Light" 浅色系

更多色彩方案可以自己在Application Tab页去Browse

 

不修改风格,直接删掉ActionBarActivity

 

重新继承Activity 编译后运行正常

导入Unity相关jar

Jar目录:unity的安装路径D:\ProgramFiles\Unity\Editor\Data\PlaybackEngines\androidplayer\development\bin下的classes.jar

 

 

 

 

 

 

 

 

 

重新修改继承UnityPlayerActivity

并把SetContentView函数删掉(不然到手机上启动程序的时候就会只看到一句HelloWorld

再去掉其他多余接口只留onCreate

 

编译后从ArWorldUnity工程导出Jar包命名arworldunity.jar(后续提供给unity

 

 

 

 

 

 

Unity android插件配置

新建Unity工程

1.     设置PlayerSetting,要与Androidpackage对应上

2.     Assets目录下添加Plugins\Android目录,把Androidjar文件,res文件夹,libs文件夹,xml文件放入该目录

 

重新修改继承UnityPlayerActivity

注意:

Alibs目录下面不要有unity的安装路径D:\ProgramFiles\Unity\Editor\Data\PlaybackEngines\androidplayer\development\bin下的 classes.jar(要删除unityclasses.jar文件)

 

编译出错

因为4.0以上自带Theme.AppCompat主题 4.0以前版本要使用还得自己添加jar

http://tieba.baidu.com/p/3147767224

 

 

 

检测eclipse工程,工程自动引入了库V7, eclipse下正常,但导出工程jarUnity后出现编译问题

 

因为新建Android项目自动引用了appcompat_v7  Libraries  生成了 values-v11 values-v14文件夹 

 values 文件夹 下的style.xml

 

 

要么 引入android-support-v4.jar   android-support-v7-appcompat.jar  appcompat_v7.jar  右键 Add to build Path 应该就没问题 (Unity编译中实际测试失败)

 

或者去掉引用把style.xml 里的 appCompat.Light 换成

<stylename="AppBaseTheme"parent="android:Theme.Light"></style>

 

 

(修正)Eclipse 重建 工程 ArWorldUnity

将最小Sdk版本设置成4.0以上,风格Theme设为空

 

建立空工程不自动生成Activity

 values 文件夹 下的style.xml   parent属性不再是Theme.AppCompat

给工程新建Class文件

 

包名用工程包名,继承类android.app.Activity 名字MainUnityActivity

 

AndroidMainfest.xml中添加上此Activity配置

 

 

将工程clean后重新编译,在手机正常运行

依照之前步骤添加外包jar Unity中的classes.jar

修改MainUnityActivity 继承UnityPlayerActivity添加OnCreate函数(不要添加setContentView接口)

eclipsebuild工程,然后导处此工程jar包,提供给unity(继承后是不能运行的,需搬运到unity再编译)

 

拷贝到unity测试工程下

 

配置unity

 

编译错误

Errorbuilding Player: CommandInvokationFailure: Unable to convert classes into dexformat. See the Console for details.

C:\ProgramFiles\Java\jdk1.7.0_51\bin\java.exe -Xmx2048M-Dcom.android.sdkmanager.toolsdir="D:/adt_studio20150817/sdk\tools"-Dfile.encoding=UTF8 -jar"E:/unity3d/Unity/Editor/Data/BuildTargetTools/AndroidPlayer\sdktools.jar"-

stderr[

Uncaughttranslation error: java.lang.IllegalArgumentException: already added:Lcom/arvr/ar/arworldunity/R$attr;

Uncaughttranslation error: java.lang.IllegalArgumentException: already added:Lcom/arvr/ar/arworldunity/R$drawable;

Uncaughttranslation error: java.lang.IllegalArgumentException: already added:Lcom/arvr/ar/arworldunity/R$string;

Uncaughttranslation error: java.lang.IllegalArgumentException: already added:Lcom/arvr/ar/arworldunity/R$style;

Uncaughttranslation error: java.lang.IllegalArgumentException: already added:Lcom/arvr/ar/arworldunity/R;

5errors; aborting

 

WinRAR打开应用jar包,删除com目录下冲突的class

 

 

重新导入unity,编译到android,运行成功

 

横屏闪退,修改Unity android 横屏设置,重新编译运行后修护问题

http://tieba.baidu.com/p/3440479571

 

http://www.ceeger.com/Manual/PluginsForAndroid.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值