Troubleshooting Alexa Smart Screen SDK

Having trouble with the Alexa Smart Screen SDK? The following sections show possible resolutions for common issues. The sections cover issues with all platforms, macOS, and Raspberry Pi.

If you run into a problem that's not listed here, create a new issue in our GitHub repo.

All platforms

Issue: Audio configuration problems

Symptoms

Microphone fails to pick up sound. Speaker or headset fails to play sound.

Try this

See the AVS Device SDK Troubleshooting Guide.

Issue: AlexaClientSDKConfig.json file is empty or points to the wrong directories

Symptoms

The sample app fails to start.

Try this

Make sure that the AlexaClientSDKConfig.json file exists and that the path to the database files is valid, even if the db folder is empty. The following example shows an AlexaClientSDKConfig.json file, where <pathto> is a placeholder for the path to the ~/sdk_folder/db directory.

{
    "cblAuthDelegate":{
        "databaseFilePath":"<pathto>/cblAuthDelegateMMSDK.db"
    },
    "deviceInfo":{
        "deviceSerialNumber":"<serialNumber>",
        "clientId":"<clientId>",
        "productId":"<productId>"
    },
    "deviceSettings":{
        "databaseFilePath":"<pathto>/deviceSettings.db",
        "locales":["en-US","en-GB","de-DE","en-IN","en-CA","ja-JP","en-AU","fr-FR","it-IT","es-ES","es-MX","fr-CA",
            "es-US", "hi-IN", "pt-BR"],
        "defaultLocale":"en-US",
        "localeCombinations":[
            ["en-CA", "fr-CA"],
            ["fr-CA", "en-CA"]
        ],
        "defaultTimezone":"America/Vancouver"
    },
    "miscDatabase":{
        "databaseFilePath":"<pathto>/miscDatabase.db"
    },
    "alertsCapabilityAgent":{
        "databaseFilePath":"<pathto>/alerts.db"
    },
    "settings":{
        "databaseFilePath":"<pathto>/settings.db",
        "defaultAVSClientSettings":{
            "locale":"en-US"
        }
    },
    "certifiedSender":{
        "databaseFilePath":"<pathto>/certifiedSender.db"
    },
    "notifications":{
        "databaseFilePath":"<pathto>/notifications.db"
    },
    "capabilitiesDelegate":{
    }
 }

Issue: Authentication error when changing products

Symptoms

When you try to run the Alexa Smart Screen SDK sample app on a new device, you see the following error. You have registered the device as a product in the Alexa console.

RequiresShutdown:~RequiresShutdownFailed:reason=notShutdown,name=FocusBridge
CapabilitiesDelegate:getCapabilityConfigsStringFromJsonFailed::Interface configurations not available
CapabilitiesDelegate:getCapabilityConfigsStringFromJsonFailed::Interface configurations not available
CapabilitiesDelegate:getCapabilityConfigsStringFromJsonFailed::Interface configurations not available
CapabilitiesDelegate:getCapabilityConfigsStringFromJsonFailed::Interface configurations not available
CapabilitiesDelegate:getCapabilityConfigsStringFromJsonFailed::Interface configurations not available
CapabilitiesDelegate:getCapabilityConfigsStringFromJsonFailed::Interface configurations not available
CapabilitiesDelegate:getCapabilityConfigsStringFromJsonFailed::Interface configurations not available
CapabilitiesDelegate:getCapabilityConfigsStringFromJsonFailed::Interface configurations not available
CapabilitiesDelegate:getCapabilityConfigsStringFromJsonFailed::Interface configurations not available
CBLAuthDelegate:receiveTokenResponseFailed:result=UNAUTHORIZED_CLIENT

Try this

  1. Navigate to the ~/sdk_folder/db folder and delete its contents.

  2. From the new product's config.json file, copy the credentials (clientID and productID) into the AlexaClientSDKConfig.json file.

  3. Run the sample again.

  4. To authorize the new product, enter the code provided on the screen in the web page at amazon.com/us/code. For more details, see Get a Refresh Token in the AVS Device SDK documentation.

macOS

Symptoms

You see the following output.

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.63.dylib
  Referenced from: /usr/local/bin/node
  Reason: image not found
/bin/sh: line 1: 91419 Abort trap: 6           npm install
make[2]: *** [modules/GUI/CMakeFiles/GUIClient] Error 134
make[1]: *** [modules/GUI/CMakeFiles/GUIClient.dir/all] Error 2
make: *** [all] Error 2

Try this

brew reinstall node

If brew reinstall node doesn’t fix the error, uninstall and reinstall the node manually from the node.js website.

brew uninstall —ignore-dependencies node
  1. In your web browser, go to https://nodejs.org/en/download/.

  2. Download the LTS version for Mac, and follow the prompts to install Node.js.

  3. Rerun your cmake and make commands.

Symptoms

When you try to run the Alexa Smart Screen SDK sample app, you see the following output.

dyld: Library not loaded: @rpath/libAVSCommon.dylib
  Referenced from: ~/sdk_folder/ss-build/./modules/Alexa/SampleApp/src/SampleApp
  Reason: image not found
Abort trap: 6

Try this

  • Run the following command.
export DYLD_LIBRARY_PATH=$HOME/sdk_folder/sdk-install/lib:$DYLD_LIBRARY_PATH

Issue: Compatibility issue with websocketpp 0.8.1 and asio

Symptoms

Your Alexa Smart Screen SDK build fails due to the compatibility issue reported in https://github.com/zaphoyd/websocketpp/issues/794.

Try this

  1. In step 7.1.ii, git clone the websocketpp project from https://github.com/zaphoyd/websocketpp/ into your Smart Screen SDK third-party directory.
  2. Check out the develop branch.
  3. In step 7.5, use the following cmake command.
    cmake -DCMAKE_PREFIX_PATH=$HOME/sdk_folder/sdk-install \
    -DWEBSOCKETPP_INCLUDE_DIR=$HOME/sdk_folder/third-party/websocketpp \
    -DDISABLE_WEBSOCKET_SSL=ON \
    -DGSTREAMER_MEDIA_PLAYER=ON \
    -DCMAKE_BUILD_TYPE=DEBUG \
    -DPORTAUDIO=ON -DPORTAUDIO_LIB_PATH=$HOME/sdk_folder/third-party/portaudio/lib/.libs/libportaudio.a \
    -DPORTAUDIO_INCLUDE_DIR=$HOME/sdk_folder/third-party/portaudio/include/ \
    -DAPL_CORE=ON \
    -DAPLCORE_INCLUDE_DIR=$HOME/sdk_folder/apl-core-library/aplcore/include \
    -DAPLCORE_LIB_DIR=$HOME/sdk_folder/apl-core-library/build/aplcore \
    -DYOGA_INCLUDE_DIR=$HOME/sdk_folder/apl-core-library/build/yoga-prefix/src/yoga \
    -DYOGA_LIB_DIR=$HOME/sdk_folder/apl-core-library/build/lib \
    ../alexa-smart-screen-sdk
    

Raspberry Pi

Issue: Missing libcrypto (or other library) error from AVS Device SDK build

Symptoms

AVS Device SDK cmake build command fails with the error, "can't find libcrypto," or an error reporting another library as missing.

Try this

Install the required version of the missing library. For example, the AVS Device SDK requires libcrypto version 1.1. To install it, use the following command.

To install version 1.1

  • Use the following command.
     sudo apt install libcurl4-openssl-dev libssl-dev
    

To update pkgconfig

  1. Check whether pkgconfig is correct.
    pkg-config --list-all | grep libcrypto
    
  2. Copy the contents of pkgconfig in openssl@1.1 (or the current version being used) into /usr/local/lib/pkgconfig.
    cp /usr/local/Cellar/openssl@1.1/1.1.1g/lib/pkgconfig/* /usr/local/lib/pkgconfig
    
  3. Check whether pkgconfig is now correct.
    pkg-config --list-all | grep libcryptosr/local/opt/openssl/lib
    

    You should see the following command output.

    PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
    

Issue: Audio settings appear to be correct, but no audio from sample app

Symptoms

When you click the Alexa logo in your web browser, and then speak into the microphone on my Pi, you see "Listening..." and "Thinking...", but then nothing happens.

Try this

Your microphone might be turned off. If so, you need to turn it on.

To turn on your microphone

  1. In the upper right corner of the Raspberry Pi screen, right-click the speaker icon, and then choose USB Device Settings.
  2. In the dialog box, set the Sound card to USB PnP Sound Device (Alsa mixer).
  3. Under the Microphone level setting, look for a dot that's either black or red.
  4. If it's black, that means the microphone is turned off. Click the dot, and then it should turn red to show that the microphone is turned on.

Try this

If you're using a USB microphone and earbuds, try the following procedure.

To turn on your USB microphone and earbuds

  1. Replace the contents of your ~/.asoundrc with the following definitions.
     pcm.!default {
         type hw
         card 0
     }
     ctl.!default {
         type hw
         card 0
         }
     }
    
  2. In the upper right corner of the Raspberry Pi screen, right-click the speaker icon, and then choose Analog.
  3. Right-click the speaker icon again, and then choose USB Device Settings.
  4. In the dialog box, set the Sound card to USB PnP Sound Device (Alsa mixer).
  5. Under the Microphone level setting, look for a dot that's either black or red.
  6. If it's black, that means the microphone is turned off. Click the dot, and then it should turn red to show that the microphone is turned on.