Developer Guide

  • 10/27/2020
  • Public Content
Contents

Troubleshooting

Click on a question to display its answer.

Compiling & Running

Why can't I install my applet (or SDK sample's applet) on my platform?
This is usually caused by one of two circumstances:
  • You try to install a non-signed applet on an Intel DAL production platform. Try to run the applet on a pre-production platform or emulation (See more about DAL applet signing here).
  • The applet's API level is not compatible with the platform\emulation API level.
Intel DAL defines an API level which reflects a certain revision of the Intel DAL Java* Class Library (JCL). This number is monotonically increasing each new project as new features are added and the library is extended.
In earlier projects (API level 1-6), the manifest property
applet.api.level
of the applet
specifies the platform
on which the applet will be able to run.
As of API level 7, applets will be able to run if they meet the following constraint:
Applet API level <= Platform API level
.
When creating a new project in eclipse plugin, next and finish buttons are disabled
Make sure environment variable DALsdk is defined. Run Troubleshooter to check, and if necessary, fix it.
Can I install an applet which has been signed for a specific platform on a different pre-production platform?
No.
Why do I get an OutOfMemoryError exception?
Memory allocated for and by the applet at run time is allocated from the applet’s heap memory. The total memory allocated to an applet is defined in the applet manifest property applet.heap.size. If the applet’s heap is full, an OutOfMemoryError will be thrown.
Try increasing the applet.heap.size property value in the applet’s manifest.
Why does my applet fail with the error JHI_APPLET_FATAL?
This is usually caused by one of three circumstances:
  • The applet's Java* code raises an uncaught exception and the Intel DAL virtual machine reports that the applet has crashed. Make sure that you surrounded the Java classes methods invocations with try/catch blocks and report the exceptions to the host application correctly.
  • The applet runs out of memory. This is also related to the next cause; the Intel DAL firmware may fail to allocate memory during native flows for the applet and raises an error. See "Why do I get OutOfMemoryError exception?"
  • There was an error in the Intel DAL firmware native code which was translated to a Java exception. Please contact the Intel DAL team.
Why do I receive an
Unable to load DLL ‘jhi’
exception when running a C# host application?
If you are running over the Amulet configuration, JhiSharp.dll attempts to load JHI.dll from the \bin\amulet folder (or from your current directory if it was changed). jhi.dll might not exist in the folder. Rebuild the host application to resolve the issue.
Why doesn’t the Emulauncher open automatically when running a host application from Visual Studio with Amulet configuration?
Make sure the Intel DAL SDK VisualStudio extension is installed. The standalone installer for the Visual Studio plugin is located in the SDK’s installation directory at \DALsdk\Plugins\VisualStudio\DALPackage.vsix.

Common Errors

"An unhandled exception of type 'System.Runtime.InteropServices.SEHException' occurred" when running host application sample
This is usually caused when the sample's library can not find the JHI.dll file.
As recommended here, SDK samples use delay load to load the JHI.dll. At run-time, The delayHook function (see in the DelayLoader.cpp file) is called the first time any of the Intel® DAL Host Interface Service (Intel® DAL HIS) functions is called. This function extracts the Intel DAL HIS path from the Windows* registry keys and loads the .dll dynamically. If the JHI.dll could not be found, an exception is thrown.
If you run over emulation, verify that the host application configuration is
Amulet
and the Emulauncher is running with the correct API level emulation. If you run on a real silicon-based platform, make sure that you have installed
Intel DAL Host Interface Service
on the platform.
 
"Failed running BHC tool in order to perform API analysis" when compiling an applet
You might be using one of the Java* features that are not supported by the Intel DAL compiler, such as float and double primitive types, referencing an external library, enums, regex, annotation, reflection and threads. For further details on limitations, see Java* Limitations.
"JHI_Install2() failed" from Intel.Dal.Jhi.Install (in JhiSharp.dll)
Using JhiSharp.dll for applet installation may fail because of JHI.dll signature verification against old certificate. If it does, make sure you use the latest JhiSharp.dll (can be found in the \Plugins\VisualStudio\JHI\ subfolder of your SDK installation).
Intel DAL Host Interface Service error JHI_VM_DLL_VERIFY_FAILED = 0x1017 or "Windows* can't verify the publisher of this driver software" pop-up
In order to align with the industry trend towards 2048-bit certificates, Intel moved its code signing root from 1024-bit to 2048-bit. As a result, Intel software signed with 2048-bit certificates may fail to install correctly or to verify file signature if the "Trusted Root Certification Authorities" store in the OS does not include those root certificates.
Intel and Microsoft recommend using one of the methods below to resolve the issue:
  • Windows Update: Applying the latest Windows Update will automatically update the Trusted Root Certification Authorities Store.
  • Get the root certificate from Microsoft: KB931125
  • Registry key modification: An alternative solution via a registry key modification is available from Microsoft. Please contact your Microsoft representative for details.
"The manifest does not contain the property: X" from DALPackageCreator
There may be a mismatch between the Pack Tool and the DALPackageCreator. Make sure that both tools are from the same SDK version.
An unhandled exception of type 'Intel.Dal.JhiException' occurred in JhiSharp.dll (JHI_Initialize() failed)” when running a c# host application over emulation (using Amulet configuration)
Make sure the host bin\Amulet folder contains the JHI.dll file. If it does not, copy it from %DALsdk%\Platforms\JHI.
I received an error that I am missing C++ packages
C++ Visual Studio package is not installed. Either install it or use a C# host application instead.
Calling JHI.instance from Visual Studio host fails with JHI_NO_CONNECTION_TO_FW exception when running over emulation.
Make sure the Emulauncher is running properly, and make sure the firewall is not blocking DAL SIMULATOR processes.
Couldn’t find an answer to your question?
Try the Troubleshooter tool to detect and resolve environment issues.
If you still cannot find a solution, ask other users and experts at the Intel® DAL user forum.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804