分享

android studio 打jar包和unity通信

 3dC 2017-01-21

一、新建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./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   点击打开链接

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多