airsdk / Adobe-Runtime-Support

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

Android always crash with AIR 50.2.2.3: java.lang.ClassNotFoundException: Didn't find class "com.adobe.air.AIRFileUtils" #2576

Open megajogos opened 1 year ago

megajogos commented 1 year ago

Our app crash on Android a second after startup with the following native error:

2023-04-06 10:12:45.756 6247-6375/? W/AdobeAIR: Unable to load AIR file utils - content URIs will be unavailable
2023-04-06 10:12:45.757 6247-6375/? A/zygote: thread.cc:2090] No pending exception expected: java.lang.ClassNotFoundException: Didn't find class "com.adobe.air.AIRFileUtils" on path: DexPathList[[directory "."],nativeLibraryDirectories=[/system/lib, /system/vendor/lib, /system/lib, /system/vendor/lib]]
2023-04-06 10:12:45.757 6247-6375/? A/zygote: thread.cc:2090]   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:125)
2023-04-06 10:12:45.757 6247-6375/? A/zygote: thread.cc:2090]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
2023-04-06 10:12:45.757 6247-6375/? A/zygote: thread.cc:2090]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)

Known Workarounds

Use AIR 50.2.2.1 or before

Policy56 commented 1 year ago

Always Crash on Google Pixel 6A with Android 13 since 50.2.2.3

04-12 18:19:44.993  5025  5088 F ginovTABLET.V51: runtime.cc:681] Pending exception java.lang.ClassNotFoundException: com.adobe.air.AIRFileUtils
04-12 18:19:44.993  5025  5088 F ginovTABLET.V51: runtime.cc:681] (Throwable with empty stack trace)
04-12 18:19:44.993  5025  5088 F ginovTABLET.V51: runtime.cc:681]
04-12 18:19:44.993  5025  5088 F ginovTABLET.V51: runtime.cc:689] No pending exception expected: java.lang.ClassNotFoundException: com.adobe.air.AIRFileUtils
04-12 18:19:44.993  5025  5088 F ginovTABLET.V51: runtime.cc:689] (Throwable with empty stack trace)
04-12 18:19:44.993  5025  5088 F ginovTABLET.V51: runtime.cc:689]
marchbold commented 1 year ago

We are seeing this same crash, using 50.2.2.3

dark0084 commented 1 year ago

When using version 50.2.2.3, the same crash occurred. This happens regardless of Android OS version and device.

Build fingerprint: 'samsung/b0qksx/b0q:13/TP1A.220624.014/S908NKSU3CWCE:user/release-keys'
Revision: '14'
ABI: 'arm64'
Processor: '7'
Timestamp: 2023-04-13 14:29:55.715608044+0900
Process uptime: 44s
Cmdline: xxx.xxx.xxx
pid: 5096, tid: 5940, name: Thread-28  >>>xxx.xxx.xxx<<<
uid: 10463
tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
Abort message: 'JNI DETECTED ERROR IN APPLICATION: JNI NewStringUTF called with pending exception java.lang.ClassNotFoundException: Didn't find class "com.adobe.air.AIRFileUtils" on path: DexPathList[[directory "."],nativeLibraryDirectories=[/system/lib64, /system_ext/lib64, /system/lib64, /system_ext/lib64]]
  at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:259)
  at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
  at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
megajogos commented 1 year ago

@ajwfrost any news about this?

Nisaba commented 1 year ago

I have the same issue. My app crashes with 50.2.2.3 SDK; works well with previous version.

Hoping a fix soon...

ajwfrost commented 1 year ago

Should be the early hours of tomorrow I hope..

Nisaba commented 1 year ago

Hello, I've tried the 50.2.2.4 version that was released this morning. Unfortunately, the issue remains for me : the app still crashes at startup...

itlancer commented 1 year ago

For me such issues fixed with AIR 50.2.2.4.

ajwfrost commented 1 year ago

@Nisaba are you able to collect a logcat trace please? You can do this with ADT e.g.

adt -deviceLog -platform android > log.txt

If you start that and then open the application so that it crashes, and then type "quit" (enter) - or you can ctrl-c a couple of times - then the log.txt should contain the details. This may be something else...!

thanks

rdefalco commented 1 year ago

Hello. AIR 50.2.2.4 seemed to fix it for us.

Nisaba commented 1 year ago

@ajwfrost Hello, here is what I could found. Hoping it helps

-16 11:18:15.123 23795-23795/? A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x58 in tid 23795 (isaba.solutions), pid 23795 (isaba.solutions) 2023-04-16 11:18:15.131 967-997/? E/libperflog: [LIBPERFLOG] socket_local_client fail = -1 2023-04-16 11:18:15.737 23884-23884/? A/DEBUG: 2023-04-16 11:18:15.737 23884-23884/? A/DEBUG: Build fingerprint: 'samsung/a12snnxx/a12s:12/SP1A.210812.016/A127FXXU5BVF2:user/release-keys' 2023-04-16 11:18:15.737 23884-23884/? A/DEBUG: Revision: '1' 2023-04-16 11:18:15.737 23884-23884/? A/DEBUG: ABI: 'arm' 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: Processor: '5' 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: Timestamp: 2023-04-16 11:18:15.202712856+0200 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: Process uptime: 4s 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: Cmdline: air.geotracker.nisaba.solutions 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: pid: 23795, tid: 23795, name: isaba.solutions >>> air.geotracker.nisaba.solutions <<< 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: uid: 10390 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x58 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: Cause: naull pointer dereference 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: r0 c7ca1040 r1 dd54f8b9 r2 00000002 r3 00000003 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: r4 f556f400 r5 c872d475 r6 00000000 r7 ffe9e628 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: r8 00000001 r9 c7b90d78 r10 c6d0f850 r11 c7b61000 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: ip f403b058 sp ffe9e590 lr f3fb3f37 pc c8617bf2 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: backtrace: 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: #00 pc 00154bf2 /data/app/~~oBvGZRff3HANc2cul2plDQ==/air.geotracker.nisaba.solutions-3kgdBuup5O4j1h-tkPNecw==/lib/arm/libCore.so (BuildId: 1a2b366159a30e9db8b923dcd27b289dd6a588cf) 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: #01 pc 0045e20f /data/app/~~oBvGZRff3HANc2cul2plDQ==/air.geotracker.nisaba.solutions-3kgdBuup5O4j1h-tkPNecw==/lib/arm/libCore.so (BuildId: 1a2b366159a30e9db8b923dcd27b289dd6a588cf) 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: #02 pc 0045831f /data/app/~~oBvGZRff3HANc2cul2plDQ==/air.geotracker.nisaba.solutions-3kgdBuup5O4j1h-tkPNecw==/lib/arm/libCore.so (BuildId: 1a2b366159a30e9db8b923dcd27b289dd6a588cf) 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: #03 pc 004cb3df /data/app/~~oBvGZRff3HANc2cul2plDQ==/air.geotracker.nisaba.solutions-3kgdBuup5O4j1h-tkPNecw==/lib/arm/libCore.so (BuildId: 1a2b366159a30e9db8b923dcd27b289dd6a588cf) 2023-04-16 11:18:15.738 23884-23884/? A/DEBUG: #04 pc 0000068f 2023-04-16 11:18:15.795 413-413/? E/tombstoned: Tombstone written to: tombstone_10 2023-04-16 11:18:15.810 549-549/? E/audit: type=1701 audit(1681636695.805:22822): auid=4294967295 uid=10390 gid=10390 ses=4294967295 subj=u:r:untrusted_app:s0:c134,c257,c512,c768 pid=23795 comm="isaba.solutions" exe="/system/bin/app_process32" sig=11 res=1 2023-04-16 11:18:15.832 1323-1339/? E/TaskStackListenerAbstract: onTaskSnapshotChanged called by Binder.getCallingPid() 0 android.app.ITaskStackListener$Stub.onTransact:585 android.os.Binder.execTransactInternal:1220 android.os.Binder.execTransact:1179 2023-04-16 11:18:15.838 1323-11966/? E/TaskStackListenerAbstract: onTaskSnapshotChanged called by Binder.getCallingPid() 0 android.app.ITaskStackListener$Stub.onTransact:585 android.os.Binder.execTransactInternal:1220 android.os.Binder.execTransact:1179 2023-04-16 11:18:15.838 3645-21638/? E/TaskStackListenerAbstract: onTaskSnapshotChanged called by Binder.getCallingPid() 0 android.app.ITaskStackListener$Stub.onTransact:585 android.os.Binder.execTransactInternal:1220 android.os.Binder.execTransact:1179 2023-04-16 11:18:15.854 650-650/? E/ClientCache: failed to get buffer, invalid process token 2023-04-16 11:18:15.869 650-650/? E/BpTransactionCompletedListener: Failed to transact (-32) 2023-04-16 11:18:15.873 1901-1901/? E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted 2023-04-16 11:18:15.910 2012-2012/? E/pageboostd: Received HALT command code 2 2023-04-16 11:18:15.911 3645-3645/? E/libperflog: [LIBPERFLOG] socket_local_client fail = -1 2023-04-16 11:18:15.943 23904-23904/? E/ng.android.loo: Not starting debugger since process cannot load the jdwp agent. 2023-04-16 11:18:15.947 1901-1901/? E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted 2023-04-16 11:18:15.950 23904-23904/? E/USNET: USNET: appName: com.samsung.android.lool 2023-04-16 11:18:16.241 23948-23948/? E/oid.sm.provide: Not starting debugger since process cannot load the jdwp agent. 2023-04-16 11:18:16.243 23948-23948/? E/USNET: USNET: appName: com.samsung.android.sm.provider 2023-04-16 11:18:16.423 967-1302/? E/Pageboost: ioinfo read failed 2023-04-16 11:18:16.466 2012-2012/? E/pageboostd: Received HALT command code 2 2023-04-16 11:18:16.537 967-4379/? E/AppOps: evalMode() Foreground mode : uid - 5021, op - 26, capability - 0 2023-04-16 11:18:16.538 612-612/? E/ExynosCamera: Build Date is (Jun 8 2022) (15:20:27) Process 64 bit

ajwfrost commented 1 year ago

Thanks @Nisaba - that looks like it's a native extension that's failing to register properly.. so a different error at least, but one that we'll need to investigate.

Nisaba commented 1 year ago

OK thanks. But note that works well on the previous 50.1.1 SDK version.

ajwfrost commented 1 year ago

That's strange as there's not a lot of difference here that should affect things. Would you be okay if we took a look at the APK, if you're able to build an apk-debug version then we can hopefully (a) reproduce it here and (b) replace the libCore with our own version with extra debugging information in it.. plus we can analyse the APK assets to check the descriptor and ANEs all seem to be in order.

The error (judging by the crash location and code beforehand) may be happening if an ANE was requested to be registered but already was registered.. There was one change we made here which is in relation to Worker objects, where these now would register the extensions too in order to get the AS3 definitions, so perhaps it's that. Thinking about it, do you use any delay-loaded extensions? Although, no the crash is happening in the main content loading step, before executing any of your code, which means it's not about Workers...

Anyway - if you're able to upload the APK below, we can investigate further. https://transfer.harman.com/requests/v7kryNBlzq9e3LOAuYETU2

thanks

Nisaba commented 1 year ago

Ok, the APK has been submitted, thanks.

ajwfrost commented 1 year ago

Thanks -> definitely something wrong with that ANE. It's got an extension XML file with:

<platform name="Android-ARM"> 
<applicationDeployment/> 
</platform>

No native library or initializer or anything, and there's no .jar or .so file in there. So that's why it's failing... Assuming you don't actually need/use that ANE (or it would tell you at runtime it's not supported), then we can put a patch into the runtime to stop the crash from happening... but you could just remove it for now from your app descriptor file.

thanks

Nisaba commented 1 year ago

OK ! I removed this ANE : com.freshplanet.AirNetworkInfo And it works now. Thanks !

Anyway, maybe it would be interesting to fix this issue on the next SDK release.

ajwfrost commented 1 year ago

it would be interesting to fix this issue on the next SDK release.

Done :-)

thanks