簡體   English   中英

Adobe Native Extensions:如何將第三方庫 (.jar) 打包到我的 Flex 應用程序的 Android Native Extensions 中?

[英]Adobe Native Extensions: How do I package third party libraries (.jar) in a Android Native Extension for my Flex App?

不是一個重復的問題,我將發布“已接受”答案對我不起作用的問題的鏈接。

幾周以來,我一直在嘗試為我的 flex android 應用程序集成第三方庫,但沒有成功。 不幸的是,沒有可靠的端到端文檔。 至少可以說,Adobe 在該主題上所記錄的很少內容是不夠的。

我正在使用的工具:

  1. ADT 在 Windows 7 上從命令行打包 ANE。
  2. Flash Builder 打包最終的 APK(帶有 flash 部分的 ANE)

我的 ANE 目錄結構:

在此處輸入圖片說明

我正在使用的 ADT 命令:

<Adt path>\adt -package -storetype PKCS12 -keystore ./cert.p12 -storepass <password> -target ane myane.ane ./build/ane/extension.xml -swc ./build/ane/*.swc -platform Android-ARM -platformoptions platform.xml -C ./build/ane/Android-ARM/ . -platform Android-x86 \ -C ./build/ane/Android-ARM/ .

以下是一些關於 Stack Overflow 的問題,我確實參考了這些問題,但這些問題對我不起作用:

問題#1 :接受的答案是使用 java 中的 JAR 工具簡單地組合兩個 JAR 文件。 它對我不起作用,我在嘗試訪問 ThirdPartyJar.jar 中的任何類時收到 NoClassDefFound 錯誤。 我像這樣從 Eclipse 導出我的 Native Jar:

在此處輸入圖片說明

在此處輸入圖片說明

我的疑問是,在結合兩個 JAR 時,我在哪里定義了依賴項? JAR 的簡單組合如何為接受答案的其他人工作?

問題#2 :此處接受的答案是關於創建定義所述“打包依賴項”的平台選項 XML。 似乎更合乎邏輯。 我嘗試創建它,如上面我的文件夾結構和我正在使用的 adt 命令中所示。 以下是“platform.xml”的外觀:

<platform xmlns="http://ns.adobe.com/air/extension/4.0">
    <packagedDependencies>
        <packagedDependency>ThirdPartyJar.jar</packagedDependency>
    </packagedDependencies>
    <packagedResources>
    </packagedResources>
</platform>

起初,我在嘗試構建 ANE 時收到“命名空間應該與 extension.xml 相同”錯誤,但是在我將它們都更改為“...../4.0”之后,我可以構建 ANE 而沒有任何錯誤. 但是,當我在 Flex 項目中包含 ANE 並嘗試運行為 > 移動應用程序時,它會給我以下錯誤:

在此處輸入圖片說明

然后我將重命名我的 Android Native 項目中的 strings.xml 文件,重新構建 ANE,以獲取此錯誤:

在此處輸入圖片說明

我如何讓它工作? 在這兩種解決方案之間,我嘗試了無數種方法將兩個 JAR 打包在一起,但它不起作用!

使用平台選項方法的第二種方法是可用的最佳方法。

Android 和 AIR 的打包依賴問題幾乎總是由 AIR SDK 中的構建工具引起的。 舊版 SDK 中包含的版本不夠新,無法使用 Google Play 庫中的最新功能,也無法使用某些較新的 SDK。

如果您安裝了 Android SDK 構建工具,則可以將 build-tools/xxx/lib/dx.jar 中的 dx.jar 文件復制到位於此處的 AIR SDK 中的同一文件中:

AIRSDK/lib/android/bin/dx.jar

您必須將 AIR SDK 中的一個替換為 Android 構建工具中的一個,而不是相反。

我還強烈建議您此時更新adb 更新adb可以解決很多連接和調試問題。

您不應使用 Android 構建工具的 20.0 以上版本。 任何高於 20.0 的版本當前都存在 AIR 打包器的問題。

如果您使用 AIR 18+,構建工具已更新到 v20.0.0,除非您使用更現代的功能(例如 android support v13 lib),否則您不必更新構建工具。

參考: http : //airnativeextensions.com/knowledgebase/tutorial/5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM