Ferhat
Ferhat
İstanbul-II (Anadolu)
29/04/2019 tarihinden beri üye
40 GY Puanı
65K GY Sırası

Kişisel Sayfaları

İlgi Alanları

2 Rozet
0 Sertifika
1 Soru Sordu
1 Cevap Verdi
0 Blog Yazısı
0 Etiket Takibi

Hakkında

İş Tecrubesi

Kullanıcıya ait İş tecrübesi bilgisi bulunmamaktadır.

Eğitim Geçmişi

Dumlupınar Üniversitesi
| Aralık 2020 - Aralık 2020

Sertifikalar & Başarılar

GY Sertifikaları (0)
Kullanıcının GY sertifikası bulunmamaktadır.
Diğer Sertifikaları (0)
Kullanıcıya ait sertifika bulunmamaktadır.
Test Sonuçları (0)

Kullanıcıya ait test sonucu bulunmamaktadır.

Dil Becerileri

Son Forum Aktiviteleri

2
Tümünü Gör

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

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.

5 yıl 6 ay önce yanıtladın

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

07 Mayıs 2019 tarihinde cevaplandı

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.