環境:kotlin 1.2.51 / gson 2.4 / okhttp 3.10 retrofit 2.4

RetrofitとokhttpでWebAPIからjsonデータを取得しconverterでdata classに格納しています。
debug/releaseモードではdata classのメンバに正常に格納されるのですが、Android StudioのGenerate Signed APKで署名したAPKだと正常に格納されません。

以下、コードを記載します。

class ServiceGenerator {
companion object {
    fun create(auth: Boolean = false) : Router {
        val client = httpClientBuilder(auth)
        val gson = GsonBuilder()
                        .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
                        .create()
        val adapter = RxJava2CallAdapterFactory.createAsync()

        val baseUrl = LocalConfigManager.getProperty(ConfigConstants.KEY_BASE_URL)
        return Retrofit.Builder()
                .baseUrl(baseUrl!!)
                .addCallAdapterFactory(adapter)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .client(client)
                .build()
                .create(Router::class.java)
    }

    private fun httpClientBuilder(auth: Boolean): OkHttpClient {
        val client = OkHttpClient.Builder()
        client.addNetworkInterceptor(HeaderInterceptor())
        if (auth)
            client.addNetworkInterceptor(AuthorizationHeaderInterceptor())
        client.protocols(Arrays.asList(Protocol.HTTP_1_1))

        if (BuildConfig.DEBUG) {
            val logger = HttpLoggingInterceptor()
            //logger.level = HttpLoggingInterceptor.Level.HEADERS
            logger.level = HttpLoggingInterceptor.Level.BODY
            client.addNetworkInterceptor(logger)
        }
        return client.build()
    }
}

interface Router {
    @GET("/api/v2/settings")
    fun settings() : Observable<Response<Foo>>
}

data class Settings(val version: Int, @SerializedName("settings") val details: Setting)
data class Setting(
    val categories: List<Category> = listOf(),
    val personalEntries: List<PersonalEntry>)

呼び出し元

ServiceGenerator
            .create()
            .beaconContents()
            .compose(bindToLifecycle())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                    {
                        if (it.isSuccessful){
                            it.body()?.let { data ->
                                Log.d(TAG, Integer.toString(data.version)) <= 署名APKでは0になる。debug/releaseモードでは2になる。
                                if (data.beaconContents == null) <=署名APKではnullになる。署名APKではデータが配列で格納される。
                                    Log.e(TAG, "beacon contents is null.")

                                contentModel?.save(data.beaconContents)
                            }
                        }else{
                            when(it.code()){
                                404 -> Log.e(TAG, "not found.")
                            }
                        }
                    },
                    {
                        Log.e(TAG, it.localizedMessage)
                    })

APIで取得されたjsonデータ

{"version":2,"settings":{"categories":[{"id":1,"disp_no":1," ..... }

上記のコード中、呼び出し元のsubscribe内でログを出すと署名APKではversion==0にcategories==nullになります。

同じような経験された方で、解決方法をご存知の方いらっしゃいますか?