![](/img/trans.png)
[英]How to catch a “Could not deserialize object.” exception in Java (Android)?
[英]How to solve this problems? " Could not deserialize object. "
java.lang.RuntimeException:無法反序列化 object。 Class com.example.knowledgegain.User 沒有定義無參數構造函數。 如果您使用 ProGuard,請確保未剝離這些構造函數。
或在這種情況下從 Firestore 獲取數據的任何其他方式?
公共 class WalletFragment 擴展 Fragment {
public WalletFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
FragmentWalletBinding binding;
FirebaseFirestore database;
User user;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = FragmentWalletBinding.inflate(inflater,container,false);
database = FirebaseFirestore.getInstance();
try {
database.collection("User").document(FirebaseAuth.getInstance().getUid())
.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
try {
user = documentSnapshot.toObject(User.class);
binding.showCoinsId.setText(String.valueOf(user.getCoins()));
}catch (Exception e){
Log.e("TAG", "onSuccess: ", e );
}
}
});
}catch (Exception e){
Log.d("TAg", e.toString());
Toast.makeText(getContext(),e.toString(),Toast.LENGTH_LONG).show();
}
return binding.getRoot();
}
}
不應在WalletFragment
中添加無參數構造函數。 必須在User
class 中添加。 為什么? 因為在使用以下代碼行時,您需要反序列化來自 Firestore 的對象:
user = documentSnapshot.toObject(User.class);
有關更多信息,請查看我在以下帖子中的回答:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.