2016-04-01

[ANE]開發Adobe Air ANE - Part 1:使用Android Studio

 
Android Studio 是目前google推薦的Android開發工具,
這邊簡單介紹一下若要使用Android Studio開發ANE需要注意的流程.

本次簡介所使用的版本為Android Studio 1.5.1 (所有版本下載)
使用的AIR SDK為 21.0.0.176



1.Android Studio安裝完成後直接建立專案.
 
 [Start a new Android Studio project]

 2.建立專案的名稱.

這裡依各人習慣輸入即可.

Application name: 應用名
Company Domain: 公司域名 (ex.  apple.com) (可選參數,不一定要)
Package name: 識別名 (ex. com.apple.project)


3.選擇要使用的Android SDK版本.

基本上選擇的版本越低,相容的裝置就越多,但太低可使用的功能也會較少.
這邊我選擇的為 API 15 : Android 4.0.3

4.選擇預設樣版.

因為只是要寫擴充功能,所以選擇空白(Add No Activity)的樣版即可.

5.建立專案完成

剛建立完成的畫面會一片空白,可選擇左方的 project 開啟目錄.


6.加入 FlashRuntimeExtensions.jar

可在AIR SDK的目錄下 \lib\android 找到 FlashRuntimeExtensions.jar

在 Android Studio 專案目錄的[app]上右鍵可開啟匯入library

[app] -> [New] -> [Module]


選擇 Import .JAR/.AAR Package


確認路徑與檔案正確.
 
 新增library完成.

 7.設定Gradle


確認有加到 FlashRuntimeExtensions.jar ,若無設定會無法使用相關的library.
dependencies {
    compile files('xxx/FlashRuntimeExtensions.jar')
}

將 com.android.application 改為 com.android.library
//apply plugin: 'com.android.application'
 apply plugin: 'com.android.library'

移除 applicationId 
defaultConfig {
    //applicationId "extension.myfirstandroidane"
}

8.AAR 輸出
 
完成前一個步驟後,即可按下[Make Project] or [Rebuild Project]來輸出


切換到 Project目錄模式可看到輸出檔


檔案位置為 專案\app\build\outputs\aar\app-debug.aar

9.取得輸出jar
 
 基本上 aar 就是 zip壓縮 ,所以可使用任意解壓軟體解壓縮.

classes.jar 就是輸出檔,再將此檔與 as3 code結合 即可生成 ANE.

其他Jar輸出方式: [Unity] 使用 Android Studio 匯出 JAR
ANE建立請參照: [ANE]開發Adobe Air ANE - Part 2:Android AlertDialog功能

參考資料
How to build ANE in Android Studio
Building a native extension for iOS and Android

2 則留言:

  1. 您好!看你的文章,我这几天试着用android studio开发了一个ANE,用于显示Admob广告,但是在Android Device Monitor中调试时,看到报错信息:
    java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/ads/AdView; ...

    找不到admob相关的类;
    但是我在build.gradle里边加入:
    dependencies {
    ...
    compile 'com.google.android.gms:play-services-ads:11.0.4'
    }
    ads的依赖,并且在Android Studio中可以正确的编译;
    我看了编译出来的aar,里边只有我自己写的几个类的class.jar文件,libs下面只有FlashRuntimeExtensions.jar,并没有google-play-services的jar文件,
    您知道怎样解决这个问题吗?

    回覆刪除
    回覆
    1. 沒試過Admob,不過如果問題是要將第三方的jar也加入進來的話
      以前在eclipse是用fatjar的方式合併.
      android studio就沒試過了.

      刪除