创建 apk 后,我的 Android 应用程序不会从 api 获取任何数据

问题描述 投票:0回答:1

当我在模拟器或物理设备上运行我的应用程序时,它工作正常,但当我创建 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 如何解决这个问题?

android apk android-manifest android-developer-api
1个回答
0
投票

Proguard 会混淆您的响应模型,因此您的响应类成员与响应字段不匹配。

例如您的回复类似于:

{
    "data": "success"
}

以及响应模型:

data class Response(
    val data: String?
)

混淆后变成,

data class v(
    val s: String?
)

所以最终,它们不匹配。您应该向响应模型添加 @Keep 注释,或向响应类的每个成员添加 @SerializedName("FIELD_NAME")

© www.soinside.com 2019 - 2024. All rights reserved.