airsdk / Adobe-Runtime-Support

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

AIR SDK 50.0.1.1: Android publishing crash (D8) #2219

Open PG85 opened 1 year ago

PG85 commented 1 year ago

After updating from AIR SDK 33.1.1.929 to 50.0.1.1, Android builds fail:

NOTE: Multiple Android build-tools folders exist, choosing the latest version (33.0.0) for packaging
dx tool failed:Error: D8 does not support main-dex inputs and outputs when compiling to API level 21 and above
Compilation failed
Exception in thread "main" java.lang.RuntimeException: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
        at com.android.tools.r8.internal.vj.a(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:98)
        at com.android.tools.r8.D8.main(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:4)
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
        at Version.fakeStackEntry(Version_3.3.20-dev+aosp1.java:0)
        at com.android.tools.r8.internal.vj.a(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:75)
        at com.android.tools.r8.internal.vj.a(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:28)
        at com.android.tools.r8.internal.vj.a(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:27)
        at com.android.tools.r8.BaseCommand$Builder.build(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:2)
        at com.android.tools.r8.D8.a(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:4)
        at com.android.tools.r8.internal.vj.a(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:85)
        ... 1 more
Caused by: com.android.tools.r8.internal.f: D8 does not support main-dex inputs and outputs when compiling to API level 21 and above
        at com.android.tools.r8.internal.YS.a(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:14)
        at com.android.tools.r8.internal.YS.error(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:1)
        at com.android.tools.r8.internal.YS.a(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:21)
        at com.android.tools.r8.D8Command$Builder.f(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:304)
        at com.android.tools.r8.BaseCommand$Builder.a(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:1)
        at com.android.tools.r8.internal.vj.a(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:24)
        ... 4 more
        Suppressed: java.lang.RuntimeException: com.android.tools.r8.internal.f: D8 does not support main-dex inputs and outputs when compiling to API level 21 and above
                at com.android.tools.r8.internal.YS.a(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:25)
                at com.android.tools.r8.BaseCommand$Builder.a(R8_3.3.20-dev+aosp1_dd4c01853fd917497aef2d09abff533f0d25b062517ea74449d40e1778a34753:3)
                ... 5 more
        [CIRCULAR REFERENCE:com.android.tools.r8.internal.f: D8 does not support main-dex inputs and outputs when compiling to API level 21 and above]

Are there any required changes/updates (Android sdk?) I've missed? Thanks!

ajwfrost commented 1 year ago

Do you have any <uses-sdk> version information in your application descriptor? as if so, this sounds like it's set to API level 21?

The build tools are trying to use the "old" D8 mechanism and as it says, this no longer supports the dex stuff that AIR sets up. It may be that you can avoid this by switching to an older set of build tools but that's a little complex; the better thing to do would be to switch to the "gradle" based compilation which is what Android Studio uses. If you've got Android Studio installed and have an API namespace of "33.1" or later, then this should actually be working already ..

Can you enable the ADT logging (via "adt.cfg" file in the AIR SDK "lib" folder, uncomment #DebugOut=true) and then check what's happening from the "c:\users\username\adt.log" file (or (/Users/username/adt.log")?

thanks