在 Unity 裡面若需要動用到 Android 的功能時,這時候就必須要動到 Android Plugins 了。
而 Android Plugins 有個基本用法,就是將功能打包成 JAR 檔,並添加到 Unity 的 Assets/Plugins/Android 資料夾裡面,再透過 AndroidManifest.xml 檔去做相關設定後,就可以輕鬆呼叫使用了!
這邊會分成幾篇文章,一步一步進行講解跟問題排除,我比較喜歡一步一步來,因為這樣子出錯的話,也比較容易知道是哪個環節有問題!
PS:這邊使用的是 Android Studio 開發工具,而不是 Eclipse 喔!
以下開始講解如何使用 Android Studio 匯出 JAR 檔:
步驟一:
File > New > New Project 建立新的專案。
專案名稱隨意,這邊我取名為 Test,而 Company Domain 因為會上架到 Google Play 上,所以必須取一個不會跟別人一樣的名稱,才不會衝突
這邊我選擇的最低限制 Android SDK 版本為 API 9,限制越低,表示有越多的 Android 裝置能夠運行你的 App。
這邊 Android Studio 也很貼心的告訴你,若使用該版號,則差不多有 99.7% 的裝置能夠運行你的 App
最後我選擇了 Add No Activity,反正我們只是要匯出 JAR 檔,也用不到內建的 Activity。
步驟二:
將顯示方式改為 Project,其實改不改都沒差,只是改了之後,會跟 Eclipse 顯示方式比較像一點,習慣而已。
這是 1.X 版的位置
這是 2.X 版的位置
接著打開 Test > app > src > main 仔細一看,是不是跟 Eclipse 非常類似呢!
步驟三:
打開 Test > app > src > build.gradle。
將不必要的 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。
步驟五:
開 Test > :app(Test 也可) > Tasks > other,執行 exportJar。
步驟六:
完成!
..\Test\app\release 底下的 AndroidPlugin.jar 就是我們匯出的 JAR 檔囉!
參考網站: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
留言列表