Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.IllegalArgumentException: Response must include generic type (e.g., Response<String>)

Error when I send a chat to others.

java.lang.IllegalArgumentException: Response must include generic type (e.g., Response<String>)
            for method APIService.sendnotif

at retrofit2.Utils.methodError(Utils.java:54)

at retrofit2.Utils.methodError(Utils.java:43)

at retrofit2.HttpServiceMethod.parseAnnotations(HttpServiceMethod.java:77)

at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:39)
            at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:202)
            at retrofit2.Retrofit$1.invoke(Retrofit.java:160)
            at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
            at $Proxy0.sendnotif(Unknown Source)
            at com.azizah.msocial.ChatAct$7.onDataChange(ChatAct.java:297)

class interface ApiService

public interface APIService {

@Headers({
        "Content-Type:application/json",
        "Authorization:key=Lhghhkvhvhffgv"
})

@POST("fcm/send")
Call<Response> sendnotif(@Body Pengirim body);
}

sendnotif.class ERROR in line apiService.sendnotif must include generic type in here. can u explain to me to make generic type retrofit?

private void sendnotif(final String hisUid, final String name, final String pesan) {

DatabaseReference alltoken = FirebaseDatabase.getInstance().getReference("Tokens");
Query query = alltoken.orderByKey().equalTo(hisUid);
        query.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                for(DataSnapshot ds: dataSnapshot.getChildren()){
                    Tokenclass tokenclass = ds.getValue(Tokenclass.class);
                    Datanotif data = new Datanotif(myUid, name+":"+pesan, "Pesan Baru", hisUid, R.drawable.ic_usr_name);
                    Pengirim pengirim = new Pengirim(data, tokenclass.getToken());
                     apiService.sendnotif(pengirim)
                        .enqueue(new Callback<Response>() {
                            @Override
                            public void onResponse(Call<Response> call, Response<Response> response) {
                                Toast.makeText(ChatAct.this, ""+response.message(), Toast.LENGTH_SHORT).show();
                            }

                            @Override
                            public void onFailure(Call<Response> call, Throwable t) {

                            }
                        });
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

}

error in apiService.sendnotif(pengirim)

please help me, It makes app force close

like image 406
Azizah Avatar asked Feb 01 '26 05:02

Azizah


1 Answers

This submit fixed the issue, proguard issue, added a proguard rule

https://github.com/square/retrofit/pull/3910/files/9831d5c3f9d28c61d29078d89645bce8ea258366#diff-50d428633d98e235831f5f9b75d7aa48897d5edc2bed30c55c9bb9ec20b36f82

like image 199
Daniel.W Avatar answered Feb 02 '26 20:02

Daniel.W



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!