Unity与Android的问题

先说下自己的开发环境

Win7 x64

Unity5.2.2

Android Studio 2.3.2(以下简称AS)

JDK1.7

再说下创建项目

在AS中创建一个新项目

用empty activity

将Unity中的classes.jar考到项目下libs文件夹下,并右键->Add as Library

里面各种修改,最后要Build APK,发布出app-debug.aar文件

用解压程序打开此aar文件

删除其中的libs文件夹

将此文件及AndroidManifest文件考到Unity项目

Assets/Plugins/Android  文件夹下

Unity中发布Android,注意包名和你AS项目的包名一至

我建的Unity测试项目是一个很简单的场景,就是像机看着几个Cube

流程如上,但是会报出很多错误,要解决这些问题就要如下操作。

首先

在AS中创建Android项目时

最后一页有一个选项:Backwards Compatibility(AppCompat)

这个选项不要勾选上,我的Unity跟AppCompat可能有不共戴天之仇吧

其次,JDK版本

我原先是1.7,会报出如下

Failed to compile resources with the following parameters: -bootclasspath "/Users/alex/development/adt-bundle-mac-x86_64-20131030/sdk/platforms/android-21/android.jar" -d "/Users/alex/Documents/development/unity/Maze/Maze/Temp/StagingArea/bin/classes" -source 1.6 -target 1.6 -encoding UTF-8 "com/facebook/android/R.java" "com/google/android/gms/R.java"

这样的错误,在StackOverFlow上的人们解答是把JDK升级到1.8

我照做了,OK了

最后,在MainActivity中的onCreate方法中第二行语句

setContentView(R.layout.activity_main);

这行必须注释掉,不然装上apk运行就报错退出

到此,我们的Unity项目可以成功发布成Android APK了

时间: 2024-10-02 21:54:07

Unity与Android的问题的相关文章

Unity在Android和iOS中如何调用Native API

本文主要是对unity中如何在Android和iOS中调用Native API进行介绍. 首先unity支持在C#中调用C++ dll,这样可以在Android和iOS中提供C++接口在unity中调用.利用这一特性,可以扩展unity的功能.例如集成和调用第三方库.同时为了满足对unity接口的一致性,可以考虑在android和iOS上提供相同的接口供C#调用. 这里列举以下两个例子. 1. 1. 以弹出一个覆盖部分屏幕的webview为例来说明如何从C#调用Native接口. 2. 2. 简

unity导出android遇到的build target 错误详解

1. 导出运行后显示build target ="9",version is wrong ,can't  loaded xxx.untiy3d files 之类的,一般情况看导出的jar包内的project.properties中target 是否正确,改正后而且要clean相关项目. 2.看AndroidManifest.xml下    android:minSdkVersion和android:targetSdkVersion 是否正确,改正后refresh 3.看报错信息是否提示

unity与android交互总结

在网上找了很多教程,基本上使用的方法都是在eclipse上新建普通android工程,让主activity继承UnityPlayerActivity,然后在该activity中写供unity调用的接口或者主动要回调unity的接口,然后导出jar包到unity. 这种方式只要人品不好就会出一堆乱七八糟的问题: 如新建工程时选择SDK版本小于4.0时在unity build APK时报错,因为style.xml就不会有parent="Theme.AppCompat.Light,而是parent=&

unity与android的无缝连接

对unity游戏工程android客户端进行二次开发,其实只要明白 unity和android之间如何相互调用即可.这方面网上已经有博客介绍. u3d游戏公司打包android客户端游戏一般来说有两种方式: 1:在eclipse中编写所需要的java代码打包成jar,放到untiy中,用unity直接导出apk 2:从unity中打包出android工程,导入到eclipse中,进行二次开发,再打包出来 第一种,多次打包比较方便,第二种,可以直接log到错误.各有好坏. 这阵子项目刚好需要实现 

unity和Android交互

最近在接触unity.对于unity和Android的交互,网上找了好多,大多都是一种方式,下面就说一下我使用后的心得. 首先: unity调用Android, unity代码: AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject> ("currentA

Unity编译Android的原理解析和apk打包分析

作者介绍:张坤 最近由于想在Scene的脚本组件中,调用Android的Activity的相关接口,就需要弄明白Scene和Activity的实际对应关系,并对Unity调用Android的部分原理进行了研究. 本文主要探讨Scene和Activity之间的关系,以及Unity打包apk和Android studio打包apk的差别在什么地方?找到这种差别之后,可以怎么运用起来? 本文需要用到的工具: Android反编译工具--apktool Android studio自带的反编译功能 一.

unity打包android游戏部分问题总结

一:虚拟导航栏挡到游戏按钮: 解决方案如下: 1.获取焦点的时候隐藏 虚拟导航条 Navigation bar 隐藏导航条 2.出现导航条的时候,改变游戏界面大小 Unity tidbits: changing the visibility of Android’s navigation and status bars, and implementing immersive mode 二:unity与android相互调用: https://coding.net/u/fatlin/p/unity

Unity调用Android的Activity

之前http://shuxiayeshou.blog.51cto.com/4452347/1932216 写了关于Unity与Android结合所遇到的问题及解决方法 总结一下,Unity做一个简单的场景,AndroidStudio建一个简单的项目,其中MainActivity是要继承自 UnityPlayerActivity的,这样Unity程序可以调用Android端MainActivity的方法了 那如果Android项目中还有一个NewActivity,我们要通过Unity把他打开咋办呢

Unity调用Android类方法

1.  添加Unity的classes.jar文件 创建一个Android工程AndroidUnityDemo. 由于Unity的版本不同,直接在Unity安装包文件夹里面搜索classes.jar文件,如果有多个classes.jar文件,一般选择的是mono/Release文件夹下的classes.jar文件. 将classes.jar文件放在app文件下的libs文件夹下. 然后,更新一下. 2.  编写Android类 打开MainActivity.java类,让MainActivity

Unity与Android的对调

本文结构 使用注意 新工程 Unity传Android参数 Android传Unity参数 SDK嵌入 SDK封装入类 ? 使用注意 安装APK,通常旧的不需要删除,安装后会被覆盖: 任何代码文件都可以使用UnityPlayer.UnitySendMessage() 向Unity发消息.只要import com.unity3d.player.UnityPlayer;然后写UnityPlayer.UnitySendMessage()即可: Android调用Android的相关方法,参数Unity