Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows 11 - Cannot install AIR runtime - version 33.1.1.743 #1742

Open
radubirsan opened this issue Mar 3, 2022 · 45 comments
Open

Windows 11 - Cannot install AIR runtime - version 33.1.1.743 #1742

radubirsan opened this issue Mar 3, 2022 · 45 comments
Labels

Comments

@radubirsan
Copy link

A client reported not being able to install AIR runtime - version 33.1.1.743

Logged in to TeamViewer it is a new laptop that with Window 11 Por N 21H2 220000.434

"This application requires a version of adobe AIR which cannot be found...."

The PC has a Norton Security software on the leptops but disabling it is not an option.

This might be related to another [issue](#1715

@radubirsan radubirsan added the Bug label Mar 3, 2022
@ajwfrost
Copy link
Collaborator

ajwfrost commented Mar 3, 2022

Can you manually install it from the shared runtime installer:
https://airsdk.harman.com/assets/downloads/AdobeAIR.exe
and once this is installed, the application installer should then work..

thanks

@radubirsan
Copy link
Author

radubirsan commented Mar 4, 2022

Yes that is what I meant, they cannot manually install Adobe AIR runtime. They get the "This application requires a version of adobe AIR which cannot be found...." when running the AdobeAIR.exe. I installed Windows 11 in VMWare and could not reproduce it but, we connected using TeamViewer to one of there laptops. Tried to download AIR Runtime from the link you shared and after running it we get the error.

@ajwfrost
Copy link
Collaborator

ajwfrost commented Mar 4, 2022

That's quite odd! Do you know if there's already a version of AIR from Adobe that is installed, or anything within
C:\Program Files (x86)\Common Files\Adobe AIR

@radubirsan
Copy link
Author

radubirsan commented Mar 8, 2022

I deleted everything, from Common Files, uninstalled anything from Adobe in control panel.
Downloaded the shared runtime 33 ran it from command prompt ( with admin rights ) tries to add the -silent parameter also tried -uninstall and they all show the same popup
CaptureUninsatllAIR

@radubirsan
Copy link
Author

radubirsan commented Mar 8, 2022

logairfail
Found this in the common files folder. Deleted it.
PS: tried downloading https://en.softonic.com/download/adobe-air/windows/post-download/v/32.0.0.125 and I get the same error

@ajwfrost
Copy link
Collaborator

ajwfrost commented Mar 8, 2022

Okay thanks - so it looks like there's something in your Windows 11 implementation that is 'missing' which the AIR runtime depends on. I'm not sure why it works for us, presumably there are differences in the components that may be installed on different machines running Windows 11....

The way we'd normally investigate this is to use the "Dependency Walker" to load up the Adobe AIR.dll file, and see what libraries/symbols it says are missing. It's a bit slow/painstaking sometimes, so it would be simplest if we're able to reproduce it here, let me see if I can get a machine set up similar to your earlier mention of "Window 11 Por N 21H2 220000.434" (i.e. the Jan 11th update it seems)

@ajwfrost
Copy link
Collaborator

ajwfrost commented Mar 8, 2022

Actually one thing that it may be worth doing: if you can download the AIR SDK for Windows, and extract that onto the Windows 11 machine, can you then go into a command prompt and navigate to the "bin" folder, and run "adl.exe"? It should just give you some usage instructions...

The other thing would be to check in the Windows\syswow64 folder that the following libraries are present - or just copy/paste this into a command prompt which will list the files, see whether there's a "File Not Found" message!

dir /b c:\windows\syswow64\kernel32.dll
dir /b c:\windows\syswow64\user32.dll
dir /b c:\windows\syswow64\ole32.dll
dir /b c:\windows\syswow64\oleaut32.dll
dir /b c:\windows\syswow64\winspool.drv
dir /b c:\windows\syswow64\winmm.dll
dir /b c:\windows\syswow64\oleacc.dll
dir /b c:\windows\syswow64\crypt32.dll
dir /b c:\windows\syswow64\ws2_32.dll
dir /b c:\windows\syswow64\gdi32.dll
dir /b c:\windows\syswow64\msimg32.dll
dir /b c:\windows\syswow64\advapi32.dll
dir /b c:\windows\syswow64\version.dll
dir /b c:\windows\syswow64\comdlg32.dll
dir /b c:\windows\syswow64\shell32.dll
dir /b c:\windows\syswow64\shlwapi.dll
dir /b c:\windows\syswow64\wininet.dll
dir /b c:\windows\syswow64\msi.dll
dir /b c:\windows\syswow64\urlmon.dll
dir /b c:\windows\syswow64\comctl32.dll
dir /b c:\windows\syswow64\mscms.dll
dir /b c:\windows\syswow64\secur32.dll
dir /b c:\windows\syswow64\dsound.dll
dir /b c:\windows\syswow64\iphlpapi.dll
dir /b c:\windows\syswow64\dnsapi.dll

thanks

@radubirsan
Copy link
Author

Running adl.exe output:

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>adl.exe
Adobe AIR could not be found.
Use "-runtime

" to specify the location of the runtime.
You can download the latest version of the runtime
from http://www.adobe.com/go/getair.

All files are found:

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\kernel32.dll
kernel32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\user32.dll
user32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\ole32.dll
ole32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\oleaut32.dll
oleaut32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\winspool.drv
winspool.drv

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\winmm.dll
winmm.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\oleacc.dll
oleacc.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\crypt32.dll
crypt32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\ws2_32.dll
ws2_32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\gdi32.dll
gdi32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\msimg32.dll
msimg32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\advapi32.dll
advapi32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\version.dll
version.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\comdlg32.dll
comdlg32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\shell32.dll
shell32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\shlwapi.dll
shlwapi.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\wininet.dll
wininet.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\msi.dll
msi.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\urlmon.dll
urlmon.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\comctl32.dll
comctl32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\mscms.dll
mscms.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\secur32.dll
secur32.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\dsound.dll
dsound.dll

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\iphlpapi.dll
IPHLPAPI.DLL

C:\Users\Administrator\Downloads\AIRSDK_Windows (1)\bin>dir /b c:\windows\syswow64\dnsapi.dll
dnsapi.dll

TeamViewer
897 761 801
rpeiqmkf

@ajwfrost
Copy link
Collaborator

ajwfrost commented Mar 8, 2022

Okay thanks .. so basically then, the AIR DLL has got a dependency upon a function within one of those libraries, but the library no longer has that function available.

Is it possible for you to use Dependency Walker please? The steps would be:

  1. Download (probably the default = 32-bit) from https://dependencywalker.com/ (here's a direct link to the zip file) and extract the files somewhere.
  2. Run the depends.exe and open the Adobe AIR.dll file
  3. Once it's loaded (which can take a while), dismiss the error dialog and then "collapse all" the libraries listed in the top left pane. Then you can just click on the "+" and have a list of the direct dependencies....
  4. Select each of these direct dependencies in turn, and look at the top right pane where you should see a list of the imported functions with a green flag against each of them.

If there are any red flags i.e. functions that it's trying to import from a DLL that are missing, then we have our culprit, and we can switch to dynamic loading/detection of the symbols for that library....

See a picture of what we're looking for below...

many thanks

image

@radubirsan
Copy link
Author

I loaded the AIR32 DLL, here is the result file, you can load it in Dependency Walker
Adobe AIR.zip

@radubirsan
Copy link
Author

image

@radubirsan
Copy link
Author

I rand https://github.com/lucasg/Dependencies and got these missing dll errors:
Capture6
Capture7
Capture1
Capture2
Capture3
Capture5

@radubirsan
Copy link
Author

Also found these in lower folders:
EdgeGdiInitialize, ext-ms-win-gdi-edgegdi-l1-1-0.dll, False, None
N/A, 6 (0x00000006), GetCapabilitySidsEx, ext-ms-win-security-chambers-l1-1-0.dll, False, None
etc..

There are a lot of layers to dig down into, it will be time consuming to expand all possible Dll's.
Again the issue is on at least 2 Brand new Windows 11 Laptops:

image

Can we schedule a time next week where we can give you remote access to try an fix this?

@ajwfrost
Copy link
Collaborator

Hi
You can likely ignore all those, they're finding odd dependencies that we don't actually have. The Dependency Walker didn't find any issues though (assuming that the loaded information that I see isn't actually checking the DLLs on my own machine...!)
We can arrange a time for me to check directly if that works, the other thing I can try to do is create a quick utility that runs through these programmatically which may be simpler.
thanks

@radubirsan
Copy link
Author

Yes, I can install the utility, will wait for it, thank you

@ajwfrost
Copy link
Collaborator

Okay so we now have a utility that goes through all the dependent DLLs and checks that they have the right functions where we load them by name (and that the ordinals haven't changed where we import those)... are you able to run this please, and if it fails then please let us know what the log says? You can just run it from a command prompt... if you also pass as an argument, the AIR DLL, then it will also try to load that and report the Windows error code...

e.g.

c:\>  AIRDependencyCheck.exe "i:\SDKs\33.1.1.743\runtimes\air\win\Adobe AIR\Versions\1.0\Adobe AIR.dll"

AIRDependencyCheck.zip

thanks

@radubirsan
Copy link
Author

DependencyChackLOG.txt

@ajwfrost
Copy link
Collaborator

Thank you! So there's the culprit: despite having the DLL in your Windows system folder:

ERROR: could not load DLL -> dsound.dll

The good news is that it appears this isn't actually used any more in AIR! The code and comments show that DirectSound was used in the past for early versions of Windows (up to XP?) but then they switched to a new audio method. The DirectSound code is still present hence this dependency, but we should be able to strip it out and remove that dependency without any impact on our current platform (Windows 7 upwards).

Thank you for the help finding this! Weird that it's a bit hit-and-miss with different Win11 machines...

@radubirsan
Copy link
Author

Good to hear that you found the bug/solution. I can test if you have a beta AIR dll.
Is there a way the client can fix this on there laptops?

@ajwfrost
Copy link
Collaborator

Sounds like this may be a known issue (or at least, there are others experiencing the same problem). Reading up on the Windows 11 compatibility promise, all they say is that they'll work with the vendor to fix the issue, so I think this is one that we need to update... I'm curious as to why that DLL fails to load, it's not just that the symbols are changed but the library is failing when we call LoadLibrary on it. Not sure whether the Dependency Walker can give any information about it, I was wondering as a temporary workaround we could just create a new/dummy dsound.dll, which can be put into the same location as the executable. Not 100% sure whether that would work, I'll see if we can try it...

... okay yes this may work! See below for a zip containing a dummy "dsound.dll" which just has the two functions we need at the appropriate ordinals. If you can put this where the application .exe file is, it should work. So if you're packaging up an application using a "bundle" and the captive runtime, you can add this file afterwards alongside your generated .exe file before you package it up. For the AIR shared runtime installers, it may be possible to do this if you unzip the AdobeAIR.exe file and then copy the dll into that root folder, then run the installer .exe file...

dsound.zip

thanks

@radubirsan
Copy link
Author

image

Unzipping the AIR shared runtime and adding the dll, worked and I could install the runtime but trying to run test.exe or test.air, produces the same error ( tried air 32 and air 33 )

@ajwfrost
Copy link
Collaborator

So to get it to work with the test.exe, I'm not 100% sure what that's doing - the icon suggests it's a self-extracting zip so it would have the same challenges... the test.air will trigger a process called "Adobe AIR Application Installer.exe" so you'd need the dsound.dll to also be put into "C:\Program Files (x86)\Common Files\Adobe AIR\Versions\1.0"

We'll get a release out in the next week or so to fix all this..

thanks

@MariusDuP
Copy link

Has a release been brought out yet to fix this, I have exactly the same problem and followed all the above steps with the same results, still not able to install Adobe Air.

Thanks

@ajwfrost
Copy link
Collaborator

ajwfrost commented Apr 6, 2022

@MariusDuP it's currently going through our QA processes, should be finished by Friday and then I need to get the web team to upload it..

thanks

@radubirsan
Copy link
Author

Please update this thread once the update is on the website. So we can test

@ajwfrost
Copy link
Collaborator

ajwfrost commented Apr 8, 2022

@radubirsan this has just gone live...

thanks

@MariusDuP
Copy link

Where can we get the update from?

@ajwfrost
Copy link
Collaborator

The shared AIR runtime can be found at:
https://airsdk.harman.com/runtime

or direct link for Windows: https://airsdk.harman.com/assets/downloads/AdobeAIR.exe

thanks

@radubirsan
Copy link
Author

I tried the shared runtime and it works fine on Windows 11 & 10.
I also tired packaging app with Animate CC & AIR 33.1.1.821
Running the exe file on a windows without AIR Shared Runtime gives the following error:
"This application cannot be installed because this installer has been mis-configured. Please contact the application author for assistance."

@radubirsan
Copy link
Author

Will Herman support the shared runtime distribution model, even though it is "not recommended", my employer wants to buy a license specifically for the Shared Runtime distribution model.

@ajwfrost
Copy link
Collaborator

Hi

So looking at what happens if you try to run an installer exe file on a machine without AIR installed -> yes I think we need to update this process...! I had thought for a while that we should update the "native installer" mechanism so that it actually includes the runtime as well, though maybe we'll be able to keep them slimmer and just add in the extra infrastructure that it needs...

It's not really the application author who can do anything about that error message though ...!

In terms of the shared runtime, we are fine with companies distributing that internally to their employees' machines. Adobe had a separate licensing mechanism for the runtimes that were then distributed in conjunction with applications but that's where we would prefer the applications to include the runtimes via the bundle mechanism.

I think where we'd like to end up:
a) with the "native" package type so that this actually works i.e. you can give this to anyone to install, it would work as long as they've got AIR already (or as long as they're internet-connected, once we've fixed it)
b) with the "bundle" mechanism like we have now -> captive runtime and an executable
c) with the bundle turned into an installer, which would eliminate the dependency on the shared runtime but would simplify this for people if we can actually generate an MSI file for example..!

thanks

@radubirsan
Copy link
Author

radubirsan commented May 9, 2022

@ajwfrost , my company bought a SDK here is the result on Windows 10 machine.
a) "native" package outputs exe when run we get on the local PC:
image

After manually downloading and installing AIR Runtime 33. Rerunning the installer gives flowing error:
image

@ajwfrost
Copy link
Collaborator

ajwfrost commented May 9, 2022

Hi

If you've got the SDK, then it would be better if you can create a "bundle" output rather than the "native" one. The bundle includes the appropriate runtime...

But, if you've already installed the AIR runtime 33.1, then it should then install; can you confirm what version of the shared runtime you currently have installed on this? and can you share the installation log (maybe wipe out the log file prior to trying to install the above .exe?)
%LocalAppData%\Adobe\AIR\logs\Install.log

thanks

@radubirsan
Copy link
Author

I can confirm that if I install the runtime v 33.1.1.821 and then run the "native" installer the application installs.

If I uninstall AIR Runtime, and the application delete the Install.log and run the native installer I get this:
image

Can you confirm that this is still a issue with AIR SDK 33.1.1.821 "native" installer packaging?

@ajwfrost
Copy link
Collaborator

With 821 yes, this is the expected (bad) behaviour. The next SDK release will not try the step of trying to download the runtime from Adobe's servers, since (a) as you can see, it doesn't help as the Adobe runtime can't cope with the 33.1-based application namespace; and (b) at some point those downloads will be turned off (I'm surprised they still work!)

So for a while the installers (when built with 33.1.1.856 onwards) should just display a message saying you need to install the shared runtime as a manual/separate step, before you run the installer again. The full solution of course is to host our own runtime installer and certificate info etc as required so that the above all works again .. but we'd much prefer people to use the captive/bundled runtime (and are considering changing the 'native' option so that it includes the captive runtime anyway...)

thanks

thanks

@markdemich
Copy link

What's the status of of this. I'm having a similar issue. I don't understand what's the difference between native and bundle of native doesn't seamlessly install? Can someone explain?

@Ender22
Copy link

Ender22 commented Feb 22, 2023

@markdemich Something like this:

In the past, it was common for many people to have the air runtime installed on their devices, which could run any air apps, or if the user didn't have it installed they'd have to go through 2 steps for an app to work, first to download the air runtime and then to download the app (native approach).
Now however, nearly all developers have switched to bundling the air runtime with the app together, so that the only step is to install the app since it already includes the runtime. (bundle approach)

@Vagnerking
Copy link

The solution is to place the dll in the root folder of the program you are trying to open.

https://github.com/airsdk/Adobe-Runtime-Support/files/8253919/dsound.zip

@waveofthought-code
Copy link

waveofthought-code commented Apr 12, 2023

I have just run in to this issue with one of my testers, but on a Mac.
Captive runtime build (of course), running 50.2.2.3

My tester is running on an M1 with Ventura 13.2.1

image

Works fine for me on Windows 10 and an x86 Mac using Monterey 12.6.1
I have literally never seen this issue before today.

Edit: Got tester to rollback to an older version of the app which is running 50.2.1.1. No error, runs as expected.

@FliplineStudios
Copy link

@waveofthought-code I've weirdly also had this issue with a few users with a recently-released game on Steam, on Windows, and also happening with a captive runtime bundle (not shared/native).

In our case it's built with the older 33.1.1.935. I can't duplicate it myself, but the users all reported that if they installed our game from Steam on their D: drive, they would get this error when trying to run the main EXE. When they installed on their C: drive though it didn't have any problems. (On my own machines, running from any drive works just fine...)

No idea if it's related, just thought I'd mention it since you also mentioned seeing this with a captive runtime bundle, unlike the earlier posts where it was happening with only the shared runtime...

Side-note, @ajwfrost for captive runtime builds it would be nice for the error message to be worded differently, since all of these users have been emailing us asking why they need to download the shared runtime and asking us where to install it, when it already has the captive runtime...

@waveofthought-code
Copy link

waveofthought-code commented Apr 12, 2023

@FliplineStudios It just got weird over here: Running it on Steam works. Running it from TestFlight does not (above error). Same SDK (50.2.2.3) -- but only on Ventura/M1. My Monterey/x86 machine works 100%.

The TestFlight version does have apple sign in, however, so now i'm suspicious of the process itself rather than the SDK. I really don't know anymore.

@FliplineStudios
Copy link

Still seems weird that Apple Sign In would make a captive runtime bundle suddenly unable to find the captive runtime it's packaged with!

@ajwfrost Are there any other scenarios where that error message would pop up even though the captive runtime is already in the bundle?

@ajwfrost
Copy link
Collaborator

The error message pops up when the bootstrap executable file isn't able to load in the AIR runtime library/framework. So if you're using a captive runtime on mac, the executable should just try to load in the framework under the expected folder: if it fails, this error message is shown. The wording makes it sound like it's a shared runtime, I agree -> I will have to see whether it's possible for us to distinguish between these situations though. It's altogether possible that an installation of a shared runtime, if present, would be picked up in this case though, so the suggested message may well be a solution!

My assumption here though is that the installation is 'damaged' meaning the files are likely there, but unable to be loaded, and on macOS that means most likely a code signing failure. If the files aren't signed properly, or if files have been added/removed since signing, or if the permissions don't check out properly, then it's likely to have the problem.

If you have an installation where it's failing, it's worth checking the code signing information of the binaries. I believe that Steam re-sign your files so that may be why you're seeing different behaviour (are you signing the binaries yourself before deploying via TestFlight?). There are definitely different standards applied to the code-signing of applications depending on whether they're ARM-based or Intel-based, at least on an ARM-based device (e.g. a universal app running on an M1 would fail if the code-signing/entitlements isn't exactly right when you load it normally in ARM mode; but if you configure it to launch in Intel mode with the Rosetta2 thing, it then just works....)

On Windows I'm more surprised to see that error code, unless the binary has been blocked by an anti-virus program... or depending on how exactly Steam is deploying the binary, I would assume it's the same folder structure in all cases and the executable is just checking via a relative path to try to find the DLL. We should perhaps look to add more logging in here, and maybe the error message can be changed depending on whether we can find (but not load) the binaries...

thanks

@waveofthought-code
Copy link

waveofthought-code commented Apr 13, 2023

@ajwfrost ty - it was what I suspected (and what you mentioned) -- not a problem with the SDK, but with the signing of it (aka, the "process" I mentioned above).

Turns out my script was adding entitlements to the air framework when codesigning and it wasn't doing that previously. Removing that issue and going back to 50.2.2.3 has stopped this error from occuring.

Side note: I was actually adding entitlements to every framework and have since stopped doing that as well. I still codesign each one, however. Now, only the app itself gets entitlements when its signed. It all works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants