2017-06-10 14 views
5

Tôi đã viết một phương pháp để đẩy dữ liệu vị trí theo thời gian thực để căn cứ hỏa lực:căn cứ hỏa lực Không tính để serialize tìm thấy với đối tượng trong chế độ phát hành

private void writeNewMarker(int sessionType, String myUuid, String datetime, Location location) { 
    locationToDB = new LocationFromAndroid(); 
    JSONObject jsonObjectCoords = new Coords(location.getLatitude() + "", location.getLongitude() + "", location.getAltitude() + ""); 
    locationToDB.setFinish("false"); 
    locationToDB.setLost("false"); 
    locationToDB.setCoords(jsonObjectCoords); 
    locationToDB.setDistanceToGo("0"); 
    locationToDB.setHeading(location.getBearing() + ""); 
    locationToDB.setNauwkeurigheid(location.getAccuracy() + ""); 
    locationToDB.setSpeed(location.getSpeed() * 3.6 + ""); 
    locationToDB.setSpeed2(location.getSpeed() + ""); 
    locationToDB.setTimestamp(location.getTime() + ""); 
    locationToDB.setWp_user(myUuid); 
    locationToDB.setSessionType(sessionType); 
    locationToDB.setTitle(title); 
    if(myUuid != null && datetime != null && locationToDB.getTitle() != null && !myUuid.isEmpty() && !datetime.isEmpty()) { 
     databaseRef.child(myUuid + "-Android" + sessionType + datetime).setValue(locationToDB); 

Khi tôi đang xây dựng các ứng dụng trong chế độ gỡ lỗi, nó hoạt động hoàn toàn ổn. Nhưng khi tôi đang xây dựng nó trong chế độ phát hành cho Google Play, nó ngừng hoạt động tại dòng này:

databaseRef.child(myUuid + "-Android" + sessionType + datetime).setValue(locationToDB); 

Để cụ thể hơn: Khi tôi đang làm điều này, mọi thứ đều OK:

databaseRef.child(myUuid + "-Android" + sessionType + datetime).setValue("Test"); 

Có vẻ như việc chuyển một đối tượng dưới dạng giá trị là không thể trong một APK đã ký?

Lỗi: Exception com.google.firebase.database.DatabaseException: Không tính để serialize tìm thấy trên lớp

+2

Bạn đã cấu hình ProGuard như mô tả trong [Setup Guide] (https://firebase.google.com/docs/database/android/start/#proguard)? –

+0

Thêm '-keepclassmembers class com.yourcompany.models. ** { *; } 'đã làm các trick. Cảm ơn bạn! –

+0

@BartRos, bạn có thể giải thích lý do tại sao chúng tôi làm điều này không? –

Trả lời

Các vấn đề liên quan