You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android集成Tuya IoT SDK登录报错DECODE_ERROR与SING_VALIDATE_FALED求助

Tuya IoT Android集成登录报错排查求助

我已经完成Tuya IoT Android集成指南,但登录时出现以下错误日志:

Business {"errorCode":"DECODE_ERROR","success":false,"status":"error","errorMsg":"DECODE_ERROR"} 
2023-10-15 12:29:47.768 15683-15782 Tuya                    com...an.stark.innovations.ecohogar  D  Business api: tuya.p.time.get 
{"t":1697390987134,"success":false,"errorCode":"SING_VALIDATE_FALED","status":"error","errorMsg":"La validación del permiso falló"}

我已经做了以下检查:

  • 在manifest.xml中配置了AppKey和AppSecret
  • 核对了包名并添加了SHA256
  • 尝试升级SDK版本(build.gradle中原本写的是3.13.0,后来试过3.26.5),但错误仍存在

相关代码如下:

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.INTERNET"/>
<application
    tools:node="merge"
    android:name=".ThingSmartApp"
    tools:replace="android:allowBackup, android:supportsRtl"
    android:allowBackup="true"
    android:dataExtractionRules="@xml/data_extraction_rules"
    android:fullBackupContent="@xml/backup_rules"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.EcoHogar"
    android:networkSecurityConfig="@xml/network_security_config"
    tools:targetApi="31">
    <meta-data
        android:name="TUYA_SMART_APPKEY"
        android:value="*******" />
    <meta-data
        android:name="TUYA_SMART_SECRET"
        android:value="********" />
    <activity
        android:name=".userInterface.dashboard.DashboardActivity" >
    </activity>
    <activity
        android:name=".userInterface.MainActivity"
        android:exported="true"
        android:theme="@style/Theme.EcoHogar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

Application类代码

class ThingSmartApp : Application() {
override fun onCreate() {
    super.onCreate()
    TuyaHomeSdk.setDebugMode(true)
    TuyaHomeSdk.init(this);
}
}

MainActivity代码

class MainActivity : ComponentActivity() {
lateinit var contextData: Activity
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    contextData = this
    TuyaHomeSdk.getUserInstance().loginWithEmail("*", "***",
        "***", object : ILoginCallback {
            override fun onSuccess(user: User?) {
                Toast.makeText(contextData, "OK!!: ", Toast.LENGTH_SHORT)
                    .show()
            }
            override fun onError(code: String?, error: String?) {
                Toast.makeText(contextData, "code: $code  error!!: $error", Toast.LENGTH_SHORT)
                    .show()
            }
        })
}
}

build.gradle依赖配置

// The latest version of the Tuya Home:
implementation 'com.tuya.smart:tuyasmart:3.13.0'

请问我哪里操作出错了?恳请帮助,谢谢!


排查方案

从错误码SING_VALIDATE_FALED(实际应为SIGN_VALIDATE_FAILED)和DECODE_ERROR来看,核心问题是签名验证失败,按以下优先级排查:

  1. SHA256签名准确性

    • 确认Tuya开发者平台提交的SHA256是当前测试包的正确哈希:
      • 调试包和发布包的SHA256不同,用Android Studio默认调试签名的话,导出debug.keystore的SHA256;自定义签名则用对应keystore的哈希。
      • 导出命令:keytool -list -v -keystore 你的keystore路径 -alias 别名
    • 注意不要混淆SHA1和SHA256,Tuya要求的是SHA256。
  2. AppKey、AppSecret与包名匹配

    • 检查Tuya平台上的应用包名是否和项目applicationId完全一致(包名区分大小写)。
    • 核对manifest里的TUYA_SMART_APPKEY和TUYA_SMART_SECRET,确保和平台上的完全一致,无空格或字符缺失。
  3. SDK版本与初始化

    • 确认build.gradle里的SDK版本和实际依赖一致,同步项目后查看依赖列表,排除冲突。
    • 初始化用Application上下文,你的代码里TuyaHomeSdk.init(this)是正确的,无需修改。
  4. 登录参数正确性

    • loginWithEmail的三个参数是区域码、邮箱、密码,检查区域码是否匹配账号所属地区(比如西班牙是"34"),邮箱和密码是Tuya平台注册的合法账号,且已绑定到当前应用。
  5. 网络配置

    • 检查network_security_config.xml是否拦截了Tuya的域名访问,确保SDK能正常请求Tuya服务器。

内容的提问来源于stack exchange,提问作者devjav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 08:41:07