Soru & Cevap

Volley debug variantta çalışıp release variant da çalışmıyor ...

29.04.2019 - 03:18

Merhaba arkadaşlar, Uygulamamı debug modda açınca Volley çalışıp verileri alıyor ama release variant da APIye gidiyor ama çalışmıyor.

proguard rules içinde;

-dontwarn org.apache.http.**
-dontwarn android.net.http.AndroidHttpClient
-dontwarn com.google.android.gms.**
-dontwarn com.android.volley.toolbox.**
-keep class com.android.volley.** { *; }

ekledim, ayrıca Internet izinini kontrol ettim. Bu sırada APIye istek gidiyor ve API cevap dönüyor. Ama Volley response da gelen değer null olarak görülüyor.

Release modda signed apk da sorun yaşamaktayım yani.

29 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user ferhatkarabulut
ferhatkarabulut
07.05.2019 - 11:18

Sorun proguard dosyasındaymış bazı keep class komutları eklemek gerekiyormuş.Buradaki sorun volleyden değil volleyin çektiği json'ı gsona çevirirken alınıyor. Uygulama dotfuscate ettiği için class isimleri değişiyor ve serialize edemiyordu. Aşağıdaki gibi GSon için proguard-rules.pro dosyasına ek olarak bunları eklemek ve buradaki keep ettiğimiz classların property'lerini serializable olarak işaretlemek gerekiyor (Örneğin field başına @SerializedName("Fieldname") yazarak). Debug modda dotfuscate etmediği için bu sorun oluşmuyor.

##---------------Begin: proguard configuration for Gson  ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature

# For using GSON @Expose annotation
-keepattributes *Annotation*

# Gson specific classes
-dontwarn sun.misc.**
#-keep class com.google.gson.stream.** { *; }

# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }

# Prevent proguard from stripping interface information from TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

# Application classes that will be serialized/deserialized over Gson
 -keep public class com.alce.testapp.myTestClass
##---------------End: proguard configuration for Gson  ----------

Umarım bununla karşılaşan olursa işine yarar.