Environment:
Android Studio Bumblebee | 2021.1.1 Patch 3
Build #AI-211.7628.21.2111.8309675, built on March 17, 2022
Runtime version: 11.0.11+9-b60-7590822 amd64
VM: OpenJDK 64-Bit Server VM by Oracle Corporation
Windows 10 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 1280M
Cores: 12
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: com.ctrip.wireless.android.build (1.0.7), org.jetbrains.kotlin (211-1.6.10-release-923-AS7442.40)
When breakpoints are hit on different threads, I should be able to switch between them using the dropdown list under the "Frames" tab. Recently I just found that the dropdown list would not open when I clicked on it. I can still switch to other threads using the "Threads" tab though but that would be much more inconvenient. Is this a new feature in Bumblebee 2021.1.1 Patch 3?
looks like it has been fixed in the following version of AS:
Android Studio Chipmunk | 2021.2.1 Patch 1
Build #AI-212.5712.43.2112.8609683, built on May 19, 2022
Runtime version: 11.0.12+7-b1504.28-7817840 amd64
VM: OpenJDK 64-Bit Server VM by Oracle Corporation
Windows 10 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 16
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: com.ctrip.wireless.android.build (1.0.7)
On Manjaro Linux.
Running Android Studio 3.6.3. Everything works great, but when I try to launch any emulator I am getting this error:
Emulator: createOrGetGlobalVkEmulation: Warning: Vulkan 1.1 APIs missing from device
I'm not having any driver issues outside of trying to use the Android Studio Emulator.
Studio SDK's installed:
Vulkan driver's installed:
I have Radeon's Vulkan mesa driver installed in manjaro. I also have virtualization enabled for processor in BIOS.
Manjaro Information:
System: Host: command Kernel: 5.4.40-1-MANJARO x86_64 bits: 64 compiler: gcc v: 9.3.0
CPU: Topology: 8-Core model: AMD Ryzen 7 2700X bits: 64 type: MT MCP arch: Zen+ rev: 2 L2 cache: 4096 KiB
Graphics: Device-1: Advanced Micro Devices [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
vendor: Micro-Star MSI driver: amdgpu v: kernel bus ID: 0a:00.0
Display: x11 server: X.org 1.20.8 driver: amdgpu resolution: <xdpyinfo missing>
OpenGL: renderer: Radeon RX 580 Series (POLARIS10 DRM 3.35.0 5.4.40-1-MANJARO LLVM 10.0.0) v: 4.6 Mesa 20.0.6
direct render: Yes
You can work around it as indicated here https://stackoverflow.com/a/59715169/1796802 :
Create the file ~/.android/advancedFeatures.ini
(for Windows users path should be C:\Users\Dane\.android\advancedFeatures.ini) with the following content:
# Here's how to disable Vulkan apps to talk to the emulator.
# Add the following lines to ~/.android/advancedFeatures.ini (create this file if it doesn't exist already):
Vulkan = off
GLDirectMem = on
This is a cross post from the Xamarin Forums
I have an app that was deploying without issues to a device through Xamarin Studio. After upgrading to Xamarin Studio 6 I am now having the error:
MTOUCH: Error MT3001: Could not AOT the assembly
'../obj/iPhone/Debug/build-iphone8.1-9.3.2/mtouch-cache/Build/Facebook.dll'
(MT3001)
I am using the latest Xamarin.Facebook.iOS nuget package (4.12.0 as of this writing). I have tried all three Linker behavior with the same result.
Is there anything else I can do?
Here's my system details:
=== Xamarin Studio Enterprise ===
Version 6.0 (build 5174) Installation UUID:
ff1dab9c-8c79-4fc4-b453-23a7c4df9d80 Runtime: Mono 4.4.0
(mono-4.4.0-branch-c7-baseline/5995f74) (64-bit) GTK+ 2.24.23 (Raleigh
theme)
Package version: 404000182
=== Xamarin.Profiler ===
Not Installed
=== Xamarin.Android ===
Version: 6.1.0.71 (Visual Studio Enterprise) Android SDK:
/.../Library/Developer/Xamarin/android-sdk-macosx Supported Android
versions:
4.0.3 (API level 15)
4.4 (API level 19)
5.0 (API level 21)
5.1 (API level 22)
6.0 (API level 23)
SDK Tools Version: 25.1.3 SDK Platform Tools Version: 23.1 SDK Build
Tools Version: 23.0.3
Java SDK: /usr java version "1.7.0_71" Java(TM) SE Runtime Environment
(build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build
24.71-b01, mixed mode)
Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL
=== Xamarin Android Player ===
Not Installed
=== Apple Developer Tools ===
Xcode 7.3.1 (10188.1) Build 7D1014
=== Xamarin.iOS ===
Version: 9.8.0.323 (Visual Studio Enterprise) Hash: 39ebb77 Branch:
cycle7 Build date: 2016-06-01 21:23:15-0400
=== Xamarin.Mac ===
Not Installed
=== Build Information ===
Release ID: 600005174 Git revision:
694a75f040b7f2309bc43d4f78a3a6572ca898bf Build date: 2016-06-01
17:28:08-04 Xamarin addins: 33f406fa2dcf214012c78cb846585f062b2e1d24
Build lane: monodevelop-lion-cycle7-baseline
=== Operating System ===
Mac OS X 10.11.5 Darwin xxxxx-MacBook-Pro.local 15.5.0 Darwin Kernel
Version 15.5.0 Tue Apr 19 18:36:36 PDT 2016
root:xnu-3248.50.21~8/RELEASE_X86_64 x86_64
I can't run the sample app from aalmiray's blog "The Griffon Trove: dialogs and JavaFX".
[griffonc] Compiling 1 source file to
C:\Users\foo.griffon\1.0.1\projects\sample\classes\main Compilation
error: BUG! exception in phase 'semantic analysis' in source unit
'C:\Users\foo\sample\griffon-app\views\sample\DialogView.groovy'
Invalid index
Commenting the import javafx.geometry.Insets helps by compiling.
Groovy Version: 1.8.5 JVM: 1.6.0_24 Vendor: Sun Microsystems Inc.
OS: Windows 7 x64
Griffon Version: 1.0.1
JavaFX Version: 2.1 Runtime
Link is here.
It looks to me you're being affected by http://jira.codehaus.org/browse/GRIFFON-517. If this is the case then please make sure you're running latest versions of the JavaFX and GroovyFX plugins. You can quickly check if a plugin requires updates by invoking griffon list-plugin-updates.
You can also check http://artifacts.griffon-framework.org for updates.
Is there a Registry setting that I can look for to determine whether or not the Visual C++ redistributable is installed, whether standalone or as part of Visual Studio 2008? I know that I could launch the VC++ 2008 redistributable installer and let it handle the detection, but it would look cleaner if I can check for it and not bother launching the installer if the redistributable is already on the system.
It's no biggie if there is no setting to search for, as this is just for the preliminary installers that we have for the new version of our software. We won't need it for the new Windows Installer-based installers that we are working on that will replace the old tech ones and will use the merge modules.
I don't think any of those solution can help when your using different OS ! For ex, MsiQueryProductState will always returned -1 using Vista VC8.0
while -1 for VC8.0/8.0 SP1/9.0 with Windows 7 ! So the GUID solution that microsoft provided, doesn't work in all cases
so i guess i'm forced to stuck with the %windir%\winsxs approach and search for
x86_Microsoft.VC80.CRT*
x86_Microsoft.VC90.CRT*
For those who are looking for all GUIDs, Here is a list i created:
Visual C++ 2005 runtime files
* VC 8.0 (x86) - {A49F249F-0C91-497F-86DF-B2585E8E76B7}
* VC 8.0 (x64) - {6E8E85E8-CE4B-4FF5-91F7-04999C9FAE6A}
* VC 8.0 (ia64) - {03ED71EA-F531-4927-AABD-1C31BCE8E187}
Visual C++ 2005 SP1 runtime files
* VC 8.0 SP1 (x86) - {7299052B-02A4-4627-81F2-1818DA5D550D}
* VC 8.0 SP1 (x64) - {071C9B48-7C32-4621-A0AC-3F809523288F}
* VC 8.0 SP1 (ia64) - {0F8FB34E-675E-42ED-850B-29D98C2ECE08}
Visual C++ 2005 SP1 ATL Security Update runtime files
* VC 8.0 SP1 ATL Patch (x86) - {837B34E3-7C30-493C-8F6A-2B0F04E2912C}
* VC 8.0 SP1 ATL Patch (x64) - {6CE5BAE9-D3CA-4B99-891A-1DC6C118A5FC}
* VC 8.0 SP1 ATL Patch (ia64) - {85025851-A784-46D8-950D-05CB3CA43A13}
Visual C++ 2008 runtime files
* VC 9.0 (x86) - {FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}
* VC 9.0 (x64) - {350AA351-21FA-3270-8B7A-835434E766AD}
* VC 9.0 (ia64) - {2B547B43-DB50-3139-9EBE-37D419E0F5FA}
Visual C++ 2008 SP1 runtime files
* VC 9.0 SP1 (x86) - {9A25302D-30C0-39D9-BD6F-21E6EC160475}
* VC 9.0 SP1 (x64) - {8220EEFE-38CD-377E-8595-13398D740ACE}
* VC 9.0 SP1 (ia64) - {5827ECE1-AEB0-328E-B813-6FC68622C1F9}
Visual C++ 2008 SP1 ATL Security Update runtime files
* VC 9.0 SP1 ATL (x86) - {1F1C2DFC-2D24-3E06-BCB8-725134ADF989}
* VC 9.0 SP1 ATL (x64) - {4B6C7001-C7D6-3710-913E-5BC23FCE91E6}
* VC 9.0 SP1 ATL (ia64) - {977AD349-C2A8-39DD-9273-285C08987C7B}
Check the registry:
VC++2008 (sp1):
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{3C3D696B-0DB7-3C6D-A356-3DB8CE541918}
or
VC++2008 (original):
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}
Latest one for VC2005:
Visual C++ 2005 Service Pack 1 Redistributable Package MFC Security Update
* VC 8.0 SP1 MFCLOC Patch (x86) - {710F4C1C-CC18-4C49-8CBF-51240C89A1A2}
* VC 8.0 SP1 MFCLOC Patch (x64) - {AD8A2FA1-06E7-4B0D-927D-6E54B3D31028}
* VC 8.0 SP1 MFCLOC Patch (ia64) - {C2F60BDA-462A-4A72-8E4D-CA431A56E9EA}
8.0.50727.6195
http://www.microsoft.com/downloads/details.aspx?familyid=AE2E1A40-7B45-4FE9-A20F-2ED2923ACA62
Quick and dirty:
if (LoadLibrary(L"msvcrt80.dll")!=NULL)
{
// it is installed
}
Loadlibrary will handle searching the paths for you.
looks like there is another solution proposed by a Microsoft-Developer, using MsiQueryProductState API, alas also relying on the GUIDs.
Update: The code went live yesterday and seems to be working fine. Here is what is beeing done: It is checked for the latest-known-to-me GUID AND the path² to-where-it-is-supposed-to-be-installed. If both fails, it is installed. This seems to work fine.
Additionally, it is installed with the command line arguments "/qb" which means "unattended but not invisible". See this other blog post about those params.
FWIW, GUIDs for Microsoft Visual C++ 2008 / VC90 SP1 Redistributable - x86 9.0.30729
64bit 30729.17: 8220EEFE-38CD-377E-8595-13398D740ACE
32bit 30729.17: 9A25302D-30C0-39D9-BD6F-21E6EC160475
32bit 30729.01: 6AFCA4E1-9B78-3640-8F72-A7BF33448200
² The path:
$WINDIR\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729*
Check for $WINDIR\WinSxS\x86_Microsoft.VC90.CRT_* if, for example, you're checking for the Visual Studio 2008 redistributable.
I open-sourced a Visual C++ project on Github that checks for VC++ redistributable DLLs specifically and made it available under the Apache 2.0 license.
It has three different methods for checking for the availability of VC++9 and VC++10 runtimes:
Checks the MsiQueryProductState APIs;
Inspect the contents of the WinSxS folder for matching product directories; and
Checks the current working directory for any local versions of the VC++9 and VC++10 runtimes (and inspects their contents.)
edit: Here's a sample of what using it actually looks like:
wcout << _T("Checking for the availability of VC++ runtimes..") << endl;
wcout << _T("----------- Visual C++ 2008 (VC++9) -----------") << endl;
wcout << _T("Visual C++ 2008 (x86) ? ") << (IsVC2008Installed_x86() ? _T("true") : _T("false")) << endl;
wcout << _T("Visual C++ 2008 (x64) ? ") << (IsVC2008Installed_x64() ? _T("true") : _T("false")) << endl;
wcout << _T("Visual C++ 2008 SP1 (x86) ? ") << (IsVC2008SP1Installed_x86() ? _T("true") : _T("false")) << endl;
wcout << _T("Visual C++ 2008 SP1 (x64) ? ") << (IsVC2008SP1Installed_x64() ? _T("true") : _T("false")) << endl;
I licensed the crt-detector project under Apache 2.0, so feel free to use it in your own applications.
Update for anyone else hitting this problem:
1) If you have Visual Studio installed, the required DLLs will be present, but the "redist package" is not, so the registry keys are missing. (i.e. this will give a false negative). However, installing the redist over the top in this situation is harmless.
2) Every major release of the redist (Any combination of VS2005/VS2008, x86/x64/IA64, and service packs: SP1,ATL security update) has a different GUID. Take care if you are expecting to deploy your application on both x86 and x64 PCs.
3) If you use LoadLibrary or a check for Dll files, make sure you target the correct version. If you look for "any" copy of msvcrt80.dll (etc) then you won't be able to tell if it is the version your program was linked to.
Product code for "Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package MFC Security Update (x86)" is {9BE518E6-ECC6-35A9-88E4-87755C07200F}
You can check for the files under the WINDOWS\WinSxS directory to see which versions you have installed. Often many versions can be installed at one time so you might need to check the specific versions you have installed.
I'd like to extend the GUID list with the following values:
32bit 30729.17
{9A25302D-30C0-39D9-BD6F-21E6EC160475}
32bit 30729.01
{6AFCA4E1-9B78-3640-8F72-A7BF33448200}
64bit 30729.17
{8220EEFE-38CD-377E-8595-13398D740ACE}
64bit 30729.01
{0DF3AE91-E533-3960-8516-B23737F8B7A2}
VC++2008 (sp1)
{3C3D696B-0DB7-3C6D-A356-3DB8CE541918}
VC++2008 (original)
{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}
IA64 30729.01
{22E23C71-C27A-3F30-8849-BB6129E50679}
32bit 30729.4148
{7B33F480-496D-334A-BAC2-205DEC0CBC2D}
Visual Studio 2008 Professional SP1
{D7DAD1E4-45F4-3B2B-899A-EA728167EC4F}
32bit 30729.01
{F333A33D-125C-32A2-8DCE-5C5D14231E27}
So please decide, whether it's a good idea to check the presence of VCredist by GUIDs.
The surest way is using the MsiQueryProductState API with the GUID of the different vcredist versions.
It works!
Regards.
Found registry entry for VC2008 redistributable. Here is my solution:
BOOL IsVC2008RedistInstalled(LPCTSTR pLogFile)
{
TCHAR szLogEntry[256];
memset(szLogEntry, '0', sizeof(szLogEntry));
HKEY hKey;
LONG lErr;
TCHAR csid[256];
_stprintf( csid, _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{9A25302D-30C0-39D9-BD6F-21E6EC160475}"));
lErr = RegOpenKeyEx(HKEY_LOCAL_MACHINE, csid, 0, KEY_QUERY_VALUE, &hKey);
if (lErr == ERROR_SUCCESS)
{
_stprintf(szLogEntry, _T("VC2008 Redistributable was installed before.\n"));
toFile(pLogFile, szLogEntry);
return TRUE;
}
else
{
_stprintf(szLogEntry, _T("VC2008 Redistributable was not installed before. %ld\n"), lErr);
toFile(pLogFile, szLogEntry);
return FALSE;
}
}