//首先这是一个前沿

//我看了多的资料,还看了近半个小时的 android activity 的讲解

终于打出了apk

//接下来开始

//一步一步的跟着我走

1.创建一个android项目或者一个modudle 其项目类型为android library !android library ! android library !

2.包名可以是你的unity包名,也可以不是,反正放到unity需要查看那个 .xml 你的package

3.把 C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes 中的class.jar

复制到你的android项目中的libs文件中

4.鼠标点击libs里的那个包并右键 -> Add as library //作用是添加此包的依赖

5.由于module类型为android library 所以没有主类文件和activity这个东东 所以没有主类文件和activity这个东东 所以没有主类文件和activity这个东东

重要的我说三遍

6.接下来创建一个主类,你可以自定义类名字,但最好跟着哥哥走

MainActivity.java

package com.aprivate.lib;
import android.app.Service;
import android.os.Bundle;
import android.os.Vibrator;
import com.unity3d.player.UnityPlayerActivity; public class MainActivity extends UnityPlayerActivity
{ @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
} public void OnAndroidVibrate(String str)
{
Vibrator m_vibrator = (Vibrator) getApplication().getSystemService(Service.VIBRATOR_SERVICE);
m_vibrator.vibrate(10000);
} }

7.不要问为什么,这个功能是点击按钮手机震动

8.m_vibrator.vibrate(10000); 是要手机震动权限的 所以

// 再AndroidManifest.XML 中加入 <uses-permission android:name="android.permission.VIBRATE" />

// 不知道加再哪里的眼睛看过来

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.aprivate.lib" > <uses-permission android:name="android.permission.VIBRATE" />
<application
android:allowBackup = "true"
android:label = "lib">
<activity android:name=".MainActivity" android:label="lib">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

9.接下来搞得差不多了 请注意上面这个xml ,是有

<activity android:name=".MainActivity" android:label="lib">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

10.因为unity调用android时两个Activity 不要问为什么,i not no;

11.然后点击android studio 菜单栏中的 build -> make modudle '????'

12.unity 要有这个路径 Assets\Plugins\Android 没有的create

13.将build/outputs/arr/中的arr(用解压工具)中的libs 和 res 和 androidManifest.xml 和 classes.jar 复制到 unity Assets\Plugins\Android 路径下

14.将外面大概2.0k 的 classes.jar  替换 libs中的.jar

15.至此 工程完成

16.写调用android中的函数

        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
if (jo != null)
{
m_text.text = "jo 不为null"; jo.Call("OnAndroidVibrate", ""); }
else
{
m_text.text = "jo 为null";
}

17. 我的测试成功 而且xml中的package 中的包和我unity中的包时不对应的

18.我的android library 的api等级要小于我的unity中的api等级

unity中的为 4.1 level 16

android中的则为 4.0

19 android 中的SDK 和 untiy 用的SDK时同一个

20. 如有不懂或者出错的 请评论

Andriod Unity 调用android函数的更多相关文章

  1. unity 调用android函数

    unity 调用android函数 分类: unity2013-12-19 17:54 475人阅读 评论(0) 收藏 举报 unityandroidjar 我们知道,安卓project都有一个And ...

  2. unity调用Android的jar包

    简介 有一些手机功能,Unity没有提供相应的接口,例如震动,例如不锁屏,例如GPS,例如... 有太多的特殊功能Unity都没有提供接口,这时候,我们就需要通过使用Android原生的ADT编辑器去 ...

  3. Unity调用Android相册

    最近有一个项目有这个需求,让用户上传自己的交易凭证的截图,之前因为对调Android原生的东西不太熟悉,就先放了一边 因为项目已经上线,只不过是该功能未开放而已,那么现在为什么要写这篇博客呢,是因为. ...

  4. Unity调用Android类方法

    Unity调用Android类方法 1.  添加Unity的classes.jar文件 创建一个Android工程AndroidUnityDemo. 由于Unity的版本不同,直接在Unity安装包文 ...

  5. Unity调用Android

    1.Unity调用Android 根据unity用户手册,unity可以采用native code(c/c++),但是也提供了C#调用方法,本文对此进行简单讲解. 2.Unity获取android类 ...

  6. Unity 调用android插件

    1. Unity的Bundle Identifier必须和你的android报名一致 Activity和View的区别: Activity应该是一个展示页面,View是页面上一些按钮视图等等. 如何调 ...

  7. Unity调用Android的两个方式:其一、调用jar包

    unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...

  8. unity调用Android百度地图

    由于个人是Android小白,在这个配置上面被折磨了很久,因此写下这篇文章 工具:eclipse + unity5.6.1 首先去百度地图开发者平台下载你需要的资源,我只需要显示地图和定位,这个时候你 ...

  9. unity调用Android的两种方式:其二,调用aar包

    上一篇我们讲了unity如何调用jar包 http://www.cnblogs.com/Jason-c/p/6743224.html, 现在我们介绍一下怎么生成aar包和unity怎么调用aar 一. ...

随机推荐

  1. 64位 __int 与 long long写法

    在做ACM题时,经常都会遇到一些比较大的整数.而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647.而unsig ...

  2. TCP三次挥手

    tcp:三次握手 client和server之间需要经历三次握手才能建立连接(connnect()方法中封装了三次握手的步骤)syn:同步请求,建立连接的请求ack:对syn请求包的确认 应答syn: ...

  3. Comet OJ - Contest #11 E ffort(组合计数+多项式快速幂)

    传送门. 题解: 考虑若最后的总伤害数是s,那么就挡板分配一下,方案数是\(C_{s-1}^{n-1}\). 那么问题在于总伤害数很大,不能一个一个的算. \(C_{s-1}^{n-1}\)的OGF是 ...

  4. 【Dart学习】-- Dart之异常处理

    概述: Dart2的异常与Java是非常类似的.Dart2的异常是Exception或者Error(包括它们的子类)的类型,甚至可以是非Exception或者Error类,也可以抛出,但是不建议这么使 ...

  5. ItunesConnect:苹果内购项目元数据缺失

    问题描述: 添加内购的App审核时被拒,原因为:ios内购 元数据丢失 问题原因: 审核信息里的 “审核屏幕快照” 和 “备注” 要填写,不然就失败的. 示例图: 1.屏幕快照和审核备注都需要填写   ...

  6. MySql中创建存储过程

    MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...

  7. python的代码块缓存机制,小数据池机制。

    同一代码块的缓存机制 在python中一个模块,一个函数,一个类,一个文件等都是一个代码块. 机制内容:Python在执行同一个代码块的初始化对象的命令时,会检查是否其值是否已经存在,如果存在,会将其 ...

  8. (转)OpenFire源码学习之十五:插件开发

    转:http://blog.csdn.net/huwenfeng_2011/article/details/43418493 Plugin接口规范 插件是openfire功能的增强表现,它的主要任务: ...

  9. jenkins+jhipster集成

    准备工作: 安装Jenkins 新建一个Jhipster项目 开始集成: 新建一个Jenkins构建项目 只配置源代码 构建,成功,稍微有点信心了 配置执行构建脚本 ./mvnw package -P ...

  10. scala 列表List

    列表: 列表是不可变,也就是说不能通过赋值改变列表的元素: 列表有递归结构,而数据是连续的 List 类型:List() 同样也是List(String) 列表是基于Nil (是空的)和::(列表从前 ...