当我在模拟器或物理设备上运行我的应用程序时,它工作正常,但当我创建 apk 并发送到其他人的设备时,它不起作用。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MyApp"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.Animated.MySplashScreen"
tools:targetApi="31">
<activity
android:name=".ui.MainActivity"
android:exported="true"
android:theme="@style/Theme.Animated.MySplashScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
这就是我的清单文件的样子。
我正在生成签名的 apk 如何解决这个问题?
Proguard 会混淆您的响应模型,因此您的响应类成员与响应字段不匹配。
例如您的回复类似于:
{
"data": "success"
}
以及响应模型:
data class Response(
val data: String?
)
混淆后变成,
data class v(
val s: String?
)
所以最终,它们不匹配。您应该向响应模型添加 @Keep 注释,或向响应类的每个成员添加 @SerializedName("FIELD_NAME")。