Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> AndroidStudio Export Jar For Unity

AndroidStudio Export Jar For Unity

編輯:關於Android編程

環境:AndroidStudio 2.1.1 + Unity5.4.0f1

大體步驟如下:

創建AndroidStudio工程 生成jar 將jar導入Unity工程

廢話不多說,一步一步完成就好……

創建AndroidStudio工程

1.1 設置好名稱、路徑、包名。
這裡寫圖片描述

1.2 選擇SDK
這裡寫圖片描述

1.3 選擇 Empty Activity
這裡寫圖片描述

1.4 不改名,直接finish
這裡寫圖片描述

到這裡,工程就創建完畢了,接下來創建一個Module來封裝幾個簡單的方法,然後生成Jar文件。

生成jar

2.1 創建Module 點擊File->New->New Module
這裡寫圖片描述

2.2 選擇Anroid Library
這裡寫圖片描述

2.3 輸入Library的名字和包名,愛輸啥輸啥,看喜好,這裡我的包名書寫的和新建的項目包名不同,這裡為org.lzy.test.myjar
這裡寫圖片描述

2.4 找到Unity中的classes.jar導入到AndroidStudio工程,那個文件路徑大約在Unity安裝路徑的這裡(5.x版本的Unity):
\EditZ喎?/kf/ware/vc/" target="_blank" class="keylink">vclxEYXRhXFBsYXliYWNrRW5naW5lc1xBbmRyb2lkUGxheWVyXFZhcmlhdGlvbnNcbW9ub1xSZWxlYXNlXENsYXNzZXNcY2xhc3Nlcy5qYXI8YnIgLz4NCtXStb2687i01sbV4rj2zsS8/rW9uNWyxdDCvai1xExpYnJhcnnW0LXEbGlic87EvP7W0KGjPGJyIC8+DQo8aW1nIGFsdD0="這裡寫圖片描述" src="/uploadfile/Collfiles/20160827/20160827093150322.png" title="\" />

如果視圖是Android,不是Project,可以切換到Project標簽。點擊標簽的小三角就能看到
這裡寫圖片描述

2.5 把classes.jar加入依賴。點擊File->Project Structure
這裡寫圖片描述

2.6 Modules選擇自己新建的Android Library,中間欄點Dependencies標簽,然後點擊右側加號+,選擇File Dependency,然後找到自己拷貝進來的在libs目錄下的classes.jar點擊OK
這裡寫圖片描述

2.7 新建Class。
這裡寫圖片描述

名字為:MyExportActivity
這裡寫圖片描述

MyExportActivity.java

package org.lzy.test.myjar;

import android.app.AlertDialog;
import android.content.Intent;
import android.os.Vibrator;

import com.unity3d.player.UnityPlayerActivity;

public class MyExportActivity extends UnityPlayerActivity {
    public void showDialog(final String mTitle, final String mContent) {
        runOnUiThread(new Runnable() {

            @Override
            public void run() {
                AlertDialog.Builder mBuilder = new AlertDialog.Builder(MyExportActivity.this);
                mBuilder.setTitle(mTitle)
                        .setMessage(mContent)
                        .setPositiveButton("確定", null);
                mBuilder.show();
            }
        });
    }

    public void shareText(String subject, String body) {
        Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
        sharingIntent.setType("text/plain");
        sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
        sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
        startActivity(Intent.createChooser(sharingIntent, "Share via"));
    }

    public void setVibrator() {
        Vibrator mVibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
        mVibrator.vibrate(new long[]{200, 2000, 2000, 200, 200, 200}, -1);
    }
}

2.8 雙擊build.gradle,修改代碼,注意修改的是自己新建的Library的build.gradle,不是整個project的build.gradle
這裡寫圖片描述

build.gradle

//indicates that this is a library
apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    sourceSets {
        main {
            //Path to your source code
            java {
                srcDir 'src/main/java'
            }
        }
    }

    defaultConfig {

        minSdkVersion 21
        targetSdkVersion 23

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    lintOptions {
        abortOnError false
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile files('libs/classes.jar')
}

//task to delete the old jar
task deleteOldJar(type: Delete) {
    delete 'release/AndroidPlugin.jar'
}

//task to export contents as jar
task exportJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into('release/')
    include('classes.jar')
    ///Rename the jar
    rename('classes.jar', 'AndroidPlugin.jar')
}

exportJar.dependsOn(deleteOldJar, build)

2.9 刷新gradle,一般情況下修改了build.gradle後,系統上方會讓你SyncNow,還可以手動刷新一下,右側點擊Gradle標簽,選中自己的Library,右擊選擇Refresh external project
這裡寫圖片描述

2.10 生成jar,找到other下的exportJar,並雙擊,等待完成
這裡寫圖片描述

完成後出現如下提示
這裡寫圖片描述

我們可以看到在release目錄已經有生成好的jar包了,右擊Show in Explorer可以拿到jar包AndroidPlugin.jar
這裡寫圖片描述

將jar導入Unity工程

創建Unity工程,制作三個按鈕來測試封裝的android層的三個方法
3.1 創建Unity工程,新建UI的Canvas
這裡寫圖片描述

3.2 在Canvas下創建UI的Panel,添加一個Grid Layout Group
這裡寫圖片描述

3.3 創建3個按鈕,名為:BtnShowDialog、BtnShareText、BtnSetVibrator
這裡寫圖片描述

3.4 編寫代碼,觸發按鈕事件調用Android方法
UIController.cs

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class UIController : MonoBehaviour
{
    private AndroidJavaClass unity;
    private string subject = "WORD-O-MAZE";
    private string body = "PLAY THIS AWESOME. GET IT ON THE PLAYSTORE";
    private Button[] btns;

    void Awake()
    {
        if (unity == null)
        {
            unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        }
    }

    void Start()
    {
        btns = GetComponentsInChildren

3.5 將UIController.cs腳本掛到Canvas上
這裡寫圖片描述

3.6 將剛才打好的AndroidPlugin.jar拷貝到Unity工程的Assets\Plugins\Android中,並在該文件中新建AndroidManifest.xml文件。

注意:在activity的這一句包名和類名要書寫正確
activity android:name=”org.lzy.test.myjar.MyExportActivity”
此處的包名是我們新建的Library的包名:org.lzy.test.myjar,類名是書寫的MyExportActivity.java的類名

AndroidManifest.xml



  
  
    
      
        
        
      
    
  

3.7 設置Unity的Player Settings,注意先切換到Android,包名隨便修改,一定要修改,默認的包名無法打包,然後,Build And Run吧。
這裡寫圖片描述

3.8運行效果

showDialog
這裡寫圖片描述

shareText
這裡寫圖片描述

setVibrator
震動沒有辦法截圖。。。。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved