![](/img/trans.png)
[英]How do I consume third-party native code from my own native code in Android?
[英]Adobe Native Extensions: How do I package third party libraries (.jar) in a Android Native Extension for my Flex App?
這不是一個重復的問題,我將發布“已接受”答案對我不起作用的問題的鏈接。
幾周以來,我一直在嘗試為我的 flex android 應用程序集成第三方庫,但沒有成功。 不幸的是,沒有可靠的端到端文檔。 至少可以說,Adobe 在該主題上所記錄的很少內容是不夠的。
我正在使用的工具:
我的 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.