You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio直接运行App正常,安装签名APK后登录失效如何解决

解决方案
  • 排查代码混淆配置
    签名APK默认会开启R8/ProGuard代码压缩混淆,如果你没有配置对应的保留规则,Retrofit用到的接口注解、请求响应实体类(比如你的ResponseLogin类)的字段会被混淆重命名,导致请求参数传值异常、响应数据Gson解析失败。
    请在你项目的proguard-rules.pro文件中添加如下规则:
# Retrofit 相关保留规则
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-keepclasseswithmembers class * {
    @retrofit2.http.* <methods>;
}

# Gson 解析相关保留规则
# 请把下面的包路径替换成你ResponseLogin等接口实体类所在的包路径
-keep class com.uwbeinternational.weatherapp.** { *; } 
-keep class * implements com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
-keepattributes *Annotation*
  • 检查Release构建配置
    打开app模块下的build.gradle文件,确认release构建类型的配置没有错误覆盖接口域名:
android {
    buildTypes {
        release {
            minifyEnabled true
            // 确认你如果用了buildConfigField配置baseUrl,此处配置的域名是正确的线上地址
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}
  • 排查SSL证书验证问题
    Debug模式下Android默认信任用户安装的自定义证书,Release模式下仅信任系统内置的权威CA根证书。如果你的服务器SSL证书是自签发、或者证书链不完整,会导致Release模式下HTTPS握手失败。
    你可以给Retrofit添加日志拦截器,打印请求日志确认报错原因:
  1. 先添加日志拦截器依赖
dependencies {
    implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0'
}
  1. 修改Retrofit初始化代码,添加日志输出
private fun getRetrofitClient(): Retrofit {
    val loggingInterceptor = HttpLoggingInterceptor()
    loggingInterceptor.level = HttpLoggingInterceptor.Level.BODY
    val okHttpClient = OkHttpClient.Builder()
        .addInterceptor(loggingInterceptor)
        .build()
    return Retrofit.Builder()
        .client(okHttpClient)
        .baseUrl("https://uwbeinternational.org/")
        .addConverterFactory(GsonConverterFactory.create())
        .build()
}

如果确认是SSL证书问题,建议优先替换服务器证书为正规CA机构签发的完整证书,也可以在网络安全配置中添加你服务器证书的指纹进行信任配置。

  • 确认接口地址匹配
    你提到的PHP部署地址是https://domain.tld/login.php,代码中Retrofit请求的地址是https://uwbeinternational.org/android/login_service.php,请确认两个域名是同一服务,路径没有拼写错误。

内容的提问来源于stack exchange,提问作者UwBe International

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:36:00