java.lang.NumberFormatException:存储字符串时无效的int

时间:2013-12-01 18:20:51

标签: android azure-mobile-services

我遇到了最奇怪的错误。我试图将一个字符串存储到Azure移动服务表,我得到这个例外。 (因为我正在生成GCM ID而被抛出“

java.lang.NumberFormatException: Invalid int: "C3960965-ECE0-4533-B99D-84DB3881A50F"

public class User
{
    private int id;
    private String gcmChannel;
    public User()
    {

    }

    /**
     * Getters and setters
     *
     */

    public String getRegistrationId() {
        return gcmChannel;
    }


    public final void setRegistrationId(String registrationId) {
        gcmChannel = registrationId;
    }

1 个答案:

答案 0 :(得分:0)

Azure Mobile Services中创建的表发生了变化 - 默认情况下,表现在具有string类型的id(而不是之前的整数)。如果您将类型定义更改为以下内容:

public class User
{
    private String id;
    private String gcmChannel;
    // ... rest the same
}

应该可以正常工作。请注意,您还需要最新的适用于Android的Azure移动服务SDK(版本1.1.0),它支持包含字符串ID的类型 - 您可以在http://www.windowsazure.com/en-us/downloads/?sdk=mobile找到该SDK。

您可以在MSDN Forums中找到此更改的公告,或在this blog post中找到有关此更改的更多信息。