close

在 Unity 裡面若需要動用到 Android 的功能時,這時候就必須要動到 Android Plugins 了。
而 Android Plugins 有個基本用法,就是將功能打包成 JAR 檔,並添加到 Unity 的 Assets/Plugins/Android 資料夾裡面,再透過 AndroidManifest.xml 檔去做相關設定後,就可以輕鬆呼叫使用了!

這邊會分成幾篇文章,一步一步進行講解跟問題排除,我比較喜歡一步一步來,因為這樣子出錯的話,也比較容易知道是哪個環節有問題!

PS:這邊使用的是 Android Studio 開發工具,而不是 Eclipse 喔!


以下開始講解如何使用 Android Studio 匯出 JAR 檔:


步驟一:
File > New > New Project 建立新的專案。

image1.jpg

 

專案名稱隨意,這邊我取名為 Test,而 Company Domain 因為會上架到 Google Play 上,所以必須取一個不會跟別人一樣的名稱,才不會衝突

image10.jpg

 


這邊我選擇的最低限制 Android SDK 版本為 API 9,限制越低,表示有越多的 Android 裝置能夠運行你的 App。
這邊 Android Studio 也很貼心的告訴你,若使用該版號,則差不多有 99.7% 的裝置能夠運行你的 App

image11.jpg


最後我選擇了 Add No Activity,反正我們只是要匯出 JAR 檔,也用不到內建的 Activity。

image12.jpg

 

 

步驟二:
將顯示方式改為 Project,其實改不改都沒差,只是改了之後,會跟 Eclipse 顯示方式比較像一點,習慣而已。

這是 1.X 版的位置
image3.jpg

 

這是 2.X 版的位置
image13.jpg


接著打開 Test > app > src > main 仔細一看,是不是跟 Eclipse 非常類似呢!
 image4.jpg 


步驟三:
打開 Test > app > src > build.gradle。

image5.jpg

 

將不必要的 ID 跟 版號移除,並加入匯出的程式碼後,會變成......

 
// 這裡記得修改成 library
apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    sourceSets {
        main {
            java {
                srcDir 'src/main/java'        
            }
        }
    }
    defaultConfig {
        minSdkVersion 9    
        targetSdkVersion 23
    }
    buildTypes {
        release {
            minifyEnabled false    
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        abortOnError false
    }
}

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

// 移除舊的 jar 檔
task deleteOldJar(type: Delete) {
    delete 'release/AndroidPlugin.jar'
}

// 匯出 jar 檔
task exportJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into('release/')
    include('classes.jar')
    // 將匯出的 jar 檔重新命名
    rename('classes.jar', 'AndroidPlugin.jar')
}

exportJar.dependsOn(deleteOldJar, build)
 

 

 

步驟四:

打開畫面最右邊的 Gradle 執行 Refresh。

image6.jpg  

 

 

步驟五:

開 Test > :app(Test 也可) > Tasks > other,執行 exportJar。

image7.jpg

 

 

步驟六:

完成!

image8.jpg

 

 ..\Test\app\release 底下的 AndroidPlugin.jar 就是我們匯出的 JAR 檔囉!

image9.jpg

 

 

範例下載:https://drive.google.com/file/d/0B0QPre3qvuw-cWVIUW0weExsUEE/view?usp=sharing&resourcekey=0-8qUEbET5Q5YcCMkphd43dg

參考網站:http://www.thegamecontriver.com/2015/04/android-plugin-unity-android-studio.html

 

該教學的一系列文章:
Android Studio 匯出 JAR 檔
Android Studio 匯出 JAR 檔 - 加入 Unity classes.jar
Android Studio 匯出 JAR 檔 - 在 Unity 中調用 Android Function
Android Studio 匯出 JAR 檔 - 在 Android 中呼叫 Unity Method

 

可能會遇到的問題:
Android Studio 匯出 JAR 檔 - 呼叫 Function 無反應
Android Studio 匯出 JAR 檔 - broken class file

 

arrow
arrow

    岳 發表在 痞客邦 留言(6) 人氣()