What is the android 64 bit ane packing command?

java -jar adt64.jar -package -tsa none -storetype PKCS12 -keystore androidID.p12 -storepass 123456 -target ane ane64.ane extension64.xml -swc *.swc -platform Android-ARM64 -platformoptions platform-android.xml -C Android-ARM64 .

Is there anything wrong with this order? Or what files are missing?

<extension xmlns="http://ns.adobe.com/air/extension/32.0">
<id>ydk.sigmob.ane</id>
<versionNumber>1</versionNumber>
<platforms>
<platform name="Android-ARM64">
<applicationDeployment>
<nativeLibrary>JavaLib.jar</nativeLibrary>
<initializer>ydk.sigmob.ane.RectExtension</initializer>
<finalizer>ydk.sigmob.ane.RectExtension</finalizer>
</applicationDeployment>
</platform>
</platforms>
</extension>

you need to give more infos

  • which OS are you using? Windows? macOS?
  • which version of Java?
  • your full command-line to do the build
    or where/how do you build? Flash Builder? Animate CC?
  • the error message you get
  • etc.

on Harman site
https://airsdk.harman.com/download

you get all the details on the Release Notes PDF

eg.

4 Updating tools/IDEs to support 64-bit ARM

I want to build an Android 64 bit ane program。

Here is the error prompt for executing the command

F:\MacYDKwin\Office\FLASH\ANE\AndroidStudioANE\sigmob.com\BuildANE>java -jar adt64.jar -package -tsa none -storetype PK

List item

CS12 -keystore androidID.p12 -storepass 123456 -target ane ane64.ane extension64.xml -swc *.swc -platform Android-ARM64 -platformoptions platform-android.xml -C Android-ARM64 .
Exception in thread "main" java.lang.NoClassDefFoundError: net/lingala/zip4j/exception/ZipException
        at com.adobe.air.ConfigFile.getConfigFile(ConfigFile.java)
        at com.adobe.air.DebugFile.isLogging(DebugFile.java)
        at com.adobe.air.ADT.main(ADT.java)
Caused by: java.lang.ClassNotFoundException: net.lingala.zip4j.exception.ZipException
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 3 more

in the PDF

4.1 AIR Developer Tool
To package an android application with the armv8 binary, the “-arch armv8” option must be used on the ADT command line. By default, the packager will use armv7 unless a configuration file is provided – see below.

eg. you need to use -arch armv8

AND
be sure you are using Java 8

Thank you. I can pack the 64 bit APK file successfully. How can I pack the 64 bit ane file?

java -jar adt64.jar -package -tsa none -storetype PKCS12 -keystore androidID.p12 -storepass 123456 -target ane ane64.ane extension64.xml -swc *.swc -platform Android-ARM64 -platformoptions platform-android.xml -C Android-ARM64 .

<extension xmlns="http://ns.adobe.com/air/extension/32.0">
<id>ydk.sigmob.ane</id>
<versionNumber>1</versionNumber>
<platforms>
<platform name="Android-ARM64">
<applicationDeployment>
<nativeLibrary>JavaLib.jar</nativeLibrary>
<initializer>ydk.sigmob.ane.RectExtension</initializer>
<finalizer>ydk.sigmob.ane.RectExtension</finalizer>
</applicationDeployment>
</platform>
</platforms>
</extension>

the doc indicates

usage:
  adt -package SIGNING_OPTIONS? -target ane <output-package> <ext-desc> ANE_OPTIONS

SIGNING_OPTIONS : -storetype <type> ( -keystore <store> )? \
                  ( -storepass <pass> )? ( -alias <aliasName> )? \
                  ( -keypass <pass> )? \
                  ( -providerName <name> )? ( -tsa <url> )? \
                  ( -provisioning-profile <profile> )?
ARCH_OPTIONS    : -arch (armv7 | armv8 | x86 | x64)
ANE_OPTIONS     : -swc <swc> ( -platform <name> (-platformoptions <file>)? \
                  <fileOrDir>* ( -C <dir> <fileOrDir>+ )* )*

from

java -jar adt64.jar \
  -package \
  -tsa none -storetype PKCS12 -keystore androidID.p12 -storepass 123456 \
  -target ane ane64.ane extension64.xml \
  -swc *.swc \
  -platform Android-ARM64 \
  -platformoptions platform-android.xml \
  -C Android-ARM64 \
  .

to

java -jar adt64.jar \
  -package \
  -tsa none -storetype PKCS12 -keystore androidID.p12 -storepass 123456 \
  -target ane ane64.ane extension64.xml \
  -arch armv8 \
  -swc *.swc \
  -platform Android-ARM64 \
  -platformoptions platform-android.xml \
  -C Android-ARM64 \
  .

or

to

java -jar adt64.jar \
  -package \
  -arch armv8 \
  -storetype PKCS12 -keystore androidID.p12 -storepass 123456 -tsa none \
  -target ane ane64.ane extension64.xml \
  -swc *.swc \
  -platform Android-ARM64 \
  -platformoptions platform-android.xml \
  -C Android-ARM64 \
  .

the ADT tool can be “sensitive” to the orders of the arguments

for compiliing ANE it should follow this order

adt -package SIGNING_OPTIONS? -target ane <output-package> <ext-desc> ANE_OPTIONS

in your command-line you do not follow the order for the arguments of SIGNING_OPTIONS

in other Adobe doc, for compiling ANE for the x86 platform they usually indicates to place -arch option before the -storetype option

so you have to try different orders and see what works for your case


also see ADT package command

-arch Application developers can use this argument to create APK for x86 platforms, it takes following values:

  • armv7 - ADT packages APK for the Android armv7 platform.
  • x86 - ADT packages APK for the Android x86 platform.

armv7 is the default value when no value is specified

1 Like

Thank you very much for the establishment of 64 bit ane file!

:grinning: