java - 在类 com.potenza_pvt_ltd.AAPS.TruckDetailsActivity 上找不到车辆类型的 setter /字段

标签 java android firebase firebase-realtime-database

我看到其他人问过这个问题,但在我看来,我已经完成了所有需要做的事情,但我仍然无法让它发挥作用。我在类里面找不到车辆类型的 setter /字段 在类里面找不到到达时间的 setter /字段 在类里面找不到驱动程序编号的 setter /字段 在类里面找不到车辆编号的 setter /字段 在类里面找不到出发时间的 setter /字段 在类里面找不到部分支付金额的 setter /字段

public class TruckDetailsActivity {
        //name and address string
    @JsonProperty("Transporter")
        private String Transporter;
    @JsonProperty("Driver Name")
    private String DriverName;

    public void setVehicleType(String vehicleType) {
        VehicleType = vehicleType;
    }

    @JsonProperty("Driver Number")
        private String DriverNumber;
    @JsonProperty("Vehicle Number")
        private String VehicleNumber;
    @JsonProperty("Date")
        private String Date;
    @JsonProperty("aps")
        private String aps;
    @JsonProperty("email")
    private String email;
    private String key;
    @JsonProperty("Time of Arrival")
    private String TimeofArrival;
    @JsonProperty("Cost")
    private String Cost;
    @JsonProperty("Time of Departure")
    private String TimeofDeparture;
    @JsonProperty("Partial Amount Paid")
    private String PartialAmountPaid;
    @JsonProperty("Vehicle Type")
    private String VehicleType;

    @JsonProperty("Cash Handover")
    private String CashHandover;

    @JsonProperty("Operator")
    private String Operator;
    public TruckDetailsActivity() {

            /*Blank default constructor essential for Firebase*/
        }
    public TruckDetailsActivity(String a){

    }
    public TruckDetailsActivity(String k, String s, String index, String index1, String index2, String index3) {
        this.key=k;
        email=s;
        Transporter =index;
        DriverNumber =index1;
        Date =index2;
        aps =index3;
    }

    @JsonProperty("Key")
    public String getKey(){
        return this.key;
    }
    public void setKey(String key){
        this.key=key;
    }
    //Getters and setters
    public String getTransporter() {
            return this.Transporter;
        }
    public void setTransporter(String contractorname) {
            this.Transporter = contractorname;
        }

    public String getDriverName() {
            return this.DriverName;
        }

    public void setDriverName(String driverName) {
        this.DriverName = driverName;
    }
    public String getDriverNumber() {
            return this.DriverNumber;
        }
    public String getVehicleNumber() {
            return this.VehicleNumber;
        }

    public String getDate() {
            return this.Date;
        }


    public void setDate(String date) {
            this.Date = date;
        }


    public String getAps() {
        return this.aps;
    }

    public void setAps(String aps) {
        this.aps = aps;
    }

    public String getEmail() {
        return this.email;
    }

    public void setEmail(String email){this.email=email;}

    public String getTimeofArrival() {
        return this.TimeofArrival;
    }


    public String getCost() {
        return this.Cost;
    }

    public void setCost(String T) {
        this.Cost = T;
    }

    public String getTimeofDeparture() {
        return TimeofDeparture;
    }


    public String getPartialAmountPaid() {
        return PartialAmountPaid;
    }


    public String getVehicleType() {
        return VehicleType;
    }


    public String getCashHandover() {
        return CashHandover;
    }

    public void setCashHandover(String cashHandover) {
        CashHandover = cashHandover;
    }


    public String getOperator() {
        return Operator;
    }

    public void setOperator(String operator){this.Operator=operator;}

This is my Java file from where i call the above class.

    Query queryRef = reference.child("users").child("data").orderByChild(sort);
        queryRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for(DataSnapshot ds:dataSnapshot.getChildren()){
                    TruckDetailsActivity post = ds.getValue(TruckDetailsActivity.class);
                    post.setKey(ds.getKey());
                    Log.d("post", post.getKey());
                    TruckDetailsActivity obj = new TruckDetailsActivity(post.getKey(), post.getEmail(), post.getTransporter(), post.getDriverNumber(), post.getDate(), post.getAps());
                    list.add(index, obj);
                    Log.d("list", String.valueOf(list.get(index)));
                    index++;
                }
                mAdapter = new MyRecyclerViewAdapter(list);
                mAdapter.notifyDataSetChanged();
                Log.d("count of list", String.valueOf(mAdapter.getItemCount()));
                mRecyclerView.setAdapter(mAdapter);
                pb.setVisibility(View.GONE);
                linearLayout.setVisibility(View.VISIBLE);

            }

            @Override
            public void onCancelled(DatabaseError firebaseError) {

            }
        });

渐变构建

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.potenza_pvt_ltd.AAPS"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE-FIREBASE.txt'
        exclude 'META-INF/NOTICE'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.android.support:design:22.2.1'
    compile 'com.android.support:cardview-v7:22.0.0'
    compile 'com.android.support:recyclerview-v7:22.0.0'
    //compile 'com.firebase:firebase-client-android:2.3.1'
    compile 'com.github.brnunes:swipeablerecyclerview:1.0.2'
    compile 'com.google.firebase:firebase-database:9.0.0'
    compile 'com.google.firebase:firebase-auth:9.0.0'
    compile 'com.google.firebase:firebase-storage:9.0.0'
    compile files('libs/poi-3.14-20160307.jar')
    compile files('libs/joda-time-2.9.4.jar')
    compile files('libs/jackson-annotations-2.2.3.jar')
}

apply plugin: 'com.google.gms.google-services'

最佳答案

您似乎使用旧版 (2.x.x) SDK 构建的应用的先前版本创建了 Firebase 数据库。旧版 SDK 使用 Jackson 与 JSON 相互转换。您使用了 Jackson 注释 @JsonProperty 并指定了包含空格的名称。

您现在已经升级了您的应用程序以使用新的 SDK,它不使用 Jackson,而是期望 JavaBean getter/setter 命名约定用于 POJO 类与 JSON 的转换。这会导致名称中包含空格的数据库字段出现问题,例如“Driver Number”。

我知道的唯一解决方案是转到 Firebase 控制台并将您的数据库导出到 JSON 文件,手动编辑它以替换包含空格的字段名称,然后再导入回 Firebase。导出/导入操作在 Firebase 控制台数据库选项卡右上角的溢出菜单图标(三个垂直点)中可用。

关于java - 在类 com.potenza_pvt_ltd.AAPS.TruckDetailsActivity 上找不到车辆类型的 setter /字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42168156/

相关文章:

java - 如何设置行的颜色并将图像添加到单元格

Android SQLite(一)没有这样的表

java - AsyncTask 崩溃 Android 服务

firebase - 如何在 firebase 托管上使用 node.js 处理根路径请求?

ios - Firebase 使用 Swift 自动更新值

java - 在方法体内处理注解

java - 如何使用相对路径加载 .dll - Java

java - Spring JDBC 连接池和 InputStream 结果

android - 服务 onStartCommand 方法

ios - 创建一个swift扩展函数供所有controller访问