airsdk / Adobe-Runtime-Support

Report, track and discuss issues in Adobe AIR. Monitored by Adobe - and HARMAN - and maintained by the AIR community.
201 stars 11 forks source link

Android: Error building legacy apk in 33.1.1.743 (with PushNotifications ANE) #1584

Open ptysbilbo opened 2 years ago

ptysbilbo commented 2 years ago

Hi, I'm trying to build a legacy 64bit apk using AIR 33.1.1.743. I put the following line into the desctiptor. <BuildLegacyAPK>true</BuildLegacyAPK>

My app is using Push Notifications ANE from distriqt. I downloaded the newest ane files.

I'm getting an error:

unexpected failure: For input string: "" java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at com.adobe.air.apk.ResourceBytecodeGenerator.generateFromRFile(ResourceBytecodeGenerator.java) at com.adobe.air.apk.APKOutputStream.a(APKOutputStream.java) at com.adobe.air.apk.APKOutputStream.a(APKOutputStream.java) at com.adobe.air.apk.APKOutputStream.addApplicationDescriptor(APKOutputStream.java) at com.adobe.air.ApplicationPackager.addSpecialFiles(ApplicationPackager.java) at com.adobe.air.ApplicationPackager.createPackage(ApplicationPackager.java) at com.adobe.air.ADT.parseArgsAndGo(ADT.java) at com.adobe.air.ADT.run(ADT.java) at com.adobe.air.ADT.main(ADT.java)

Before I used version 633 and everything was ok.

I've checked every version since that one and these are the results: 633 - ok 686 - ok 698 - ok (legacy apk - <BuildLegacyAPK>true</BuildLegacyAPK>) 713 - error (legacy apk) 731 - error (legacy apk) 743 - error (legacy apk)

I've also tried my other app with no ANEs and I was able to build an apk on 743, that's why I suspect there might be a problem with ANE since version 713.

Thanks

shaymolho commented 2 years ago

@ajwfrost we also encounter this, any idea why?

ajwfrost commented 2 years ago

Hi - sorry, missed this one to start with. The mechanism changed in build 713: github-274: Updating Java bytecode generator to cope with Android styleable resources so it seems there's an issue with it trying to handle some of this code still. The bytecode generator is used as a fallback if it can't find an appropriate JDK so you may be able to work around this if you can provide a JAVA_HOME variable that points to a JDK (as opposed to a JRE .. i.e. we need to use the "javac" tool to turn the generated R.java code into compiled Java/Dex code...)

To fix this actual bug though, we can see if we can reproduce this problem using the PushNotifications ANE...

thanks

Policy56 commented 1 year ago

Hi,

I got nearly the same error since i use Air 33.1 and tried to build a 64bit app. I didn't use PushNotifications ANE

java.lang.Exception: 
unexpected failure: For input string: "8G"
java.lang.NumberFormatException: For input string: "8G"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Long.parseLong(Unknown Source)
    at java.lang.Long.parseLong(Unknown Source)
    at com.adobe.air.apk.AABOutputStream.parseXmxVal(AABOutputStream.java)
    at com.adobe.air.apk.AABOutputStream.addJavaMemoryOptions(AABOutputStream.java)
    at com.adobe.air.apk.AABOutputStream.buildGradle(AABOutputStream.java)
    at com.adobe.air.apk.AABPackager.renameOutput(AABPackager.java)
    at com.adobe.air.ApplicationPackager.createPackage(ApplicationPackager.java)
    at com.adobe.air.apk.AABPackager.createPackage(AABPackager.java)
    at com.adobe.air.ADT.parseArgsAndGo(ADT.java)
    at com.adobe.air.ADT.run(ADT.java)
    at com.adobe.air.ADT.main(ADT.java)

My JAVA_HOME path has been set to : C:\Program Files\Java\jdk-11.0.11

Thanks

ajwfrost commented 1 year ago

Can you please use 8192M...? We'll need to add a "G" parsing option to it though :-) (and reading back .. this parseXmxVal failure is going to be unrelated to the original issue here...)

ajwfrost commented 1 year ago

@shaymolho @ptysbilbo just checking with the original description -> if you're using the latest distriqt ANE and the latest AIR SDK, building via Gradle, I would expect these problems to have gone away now. Please don't use the BuildLegacyAPK setting now, I don't think it works properly with the ANEs and the latest Android SDKs.

thanks

ajwfrost commented 1 year ago

@Policy56 actually -> could you please try lower-case values? So 8192m or 8g should both work...

Policy56 commented 1 year ago

@Policy56 actually -> could you please try lower-case values? So 8192m or 8g should both work...

Thank you @ajwfrost, the lower-case values 8192m of my eclipse.ini works ! Have a good day !