android studio 打jar包和unity通信

来源:互联网 发布:上海迈普数据 编辑:程序博客网 时间:2024/06/05 19:19

一、新建Android studio工程

创建好包名,然后就能下一步了。如下图:


二、新建Module,打jar包的话必须要在Module中进行,创建方式如下图:


2、选择Android Library

3、设定好包名这里我设置和功能名字一样。如果不一样的话,这里包名要和unity中设计包名一致。


三、在新建module中引入jar我使用了万普广告,作为一个接入第三方sdk测试。

1、引入jar,将广告sdk的jar和uniyt_class.jar(这个在unity安装目录中)将他们拷贝到unityandroid2(由于功能已经叫这个名字了,所以这里后缀多个2)libs文件夹下
2、引入jar具体步骤参考下图:




、编写Android代码

1、在unityandroid2\src\main\java下写MainActivity.java

public class MainActivity extends UnityPlayerActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        AppConnect.getInstance("e6dcdc8627afd949b25ad54183a5aea6","APP_PID",this);        AppConnect.getInstance(this).initPopAd(this);    }    public void showAd(){        runOnUiThread(new Runnable() {            @Override            public void run() {                Toast.makeText(MainActivity.this , "show ad" , Toast.LENGTH_LONG).show();                AppConnect.getInstance(MainActivity.this).showPopAd(MainActivity.this);            }        } );    }}

五、导出jar

1、在unityandroid2\build.gradle中添加
task deleteOldJar(type: Delete) {    delete 'release/AndroidPlugin.jar'}task exportJar(type: Copy) {    from('build/intermediates/bundles/release/')    into('release/')    include('classes.jar')    rename('classes.jar', 'AndroidPlugin.jar')}exportJar.dependsOn(deleteOldJar, build)
然后在Terminal中执行命令gradlew exportJar 如果刚装Android studio需要下载一些组件时间会长些,执行完成后,就会在unityandroid2\release中得到jar.

六、导入unity

1、在Assets文件夹下新建Plugins\Android目录,在Android目录下,新建bin文件放引用的jar,包括刚刚导出jar和广告的jar,不包含unity_class.jar。
2、新建AndroidManifest.xml文件内容如下
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <application
        android:allowBackup="true">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
3、如果引用到res文件夹下的资源把资源放到Android/res目录中即可。

七、编写unity脚本

新建test.cs脚本
public class test : MonoBehaviour {


// Use this for initialization
void Start () {
        AndroidJavaClass unity = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
        AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject> ("currentActivity");
        currentActivity.Call ("showAd");  //调用java中写的方法
    }

// Update is called once per frame
void Update () {

}
}

八、编译apk

1、像正常打apk一样,不过有一点要注意,此时Bundle Identifier与包名要一致。
如果还有问题加我群一起进步: 115136489   点击打开链接
1 0
原创粉丝点击