Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 签名APK中的空响应-调试APK中的正确响应_Android_Json_Debugging_Apk_Retrofit2 - Fatal编程技术网

Android 签名APK中的空响应-调试APK中的正确响应

Android 签名APK中的空响应-调试APK中的正确响应,android,json,debugging,apk,retrofit2,Android,Json,Debugging,Apk,Retrofit2,我正在对网络电话进行改装 我面临着签了APK的奇怪问题 改装请求 @FormUrlEncoded @Headers("Accept: application/json") @POST("******") Call<UserInfoResponse> authenticateUser(@Field("umMobileNumber") String websiteId, @Field("spPassword") St

我正在对网络电话进行改装

我面临着签了APK的奇怪问题

改装请求

@FormUrlEncoded
@Headers("Accept: application/json")
@POST("******")
Call<UserInfoResponse> authenticateUser(@Field("umMobileNumber") String websiteId,
                                    @Field("spPassword") String loginSource);
在Singed Apk中,我将serviceBean设置为null

在谷歌上找不到任何解决方案


有人能帮我解决这个问题吗?

如果您正在构建版本apk,那么将应用proguard规则。Proguard将混淆类文件

在你的build.gradle(应用程序)中

尝试删除此规则

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

并重新构建发布apk。如果它正常工作,则与proguard规则有关。

如果您正在构建发布apk,则将应用proguard规则。Proguard将混淆类文件

在你的build.gradle(应用程序)中

尝试删除此规则

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

重新构建发布apk。如果它正常工作,则是proguard规则的问题。

问题是反序列化

我按照这个解决了


问题在于反序列化

我按照这个解决了


在我的例子中,我删除了AndroidManifest.xml中的
工具:ignore=“HardcodedDebugMode”
,这是我为调试而添加的

在进行上述更改后,收到了已签名APK中改装请求的正确响应


注意:我知道这是一个迟到的回复,我将为将来面临类似问题的人发布它。

在我的例子中,我删除了
工具:ignore=“HardcodedDebugMode”
中的AndroidManifest.xml
,这是我为调试而添加的

在进行上述更改后,收到了已签名APK中改装请求的正确响应


注意:我知道这是一个迟到的回复,我将为将来面临类似问题的人发布。

请将minify设置为false。(生成/编辑生成类型)
如果在代码发布时设置此选项,则会删除某些零件

请将minify设置为false。(生成/编辑生成类型)
如果在代码发布时设置此选项,则会删除某些零件

我按照中的建议将SerializedName注释添加到我版本的UserInfoResponse类中的所有字段中。仍然没有解决问题

添加

-保持类UserInfoResponse{*;}


proguard rules中的规则为我修复了它。

我按照中的建议将SerializedName注释添加到我版本的UserInfoResponse类中的所有字段中。仍然没有解决问题

添加

-保持类UserInfoResponse{*;}



proguard规则中的规则为我修复了它。

包括实际的函数头(因此
无效请求(blabla)
有趣请求()
)您是否正确配置了proguard文件?您可能没有为proguard中的改装2保留适当的类。检查此@Zun我已更新我的请求。您能检查一下吗。@MayRestinPeace我添加了proguard代码,但问题仍然相同。您的响应模型-UserInforResponsei包含您的实际函数头(因此,
void request(blablabla)
fun request()
)您正确配置了proguard文件吗?您可能没有为proguard中的改装2保留适当的类。检查此@Zun我已更新我的请求。您能检查一下吗。@MayRestinPeace我添加了proguard代码,但仍然是相同的问题您的响应模型-发布版本中的UserInforResponse minifyEnabled必须为true,对吗?@hasan_shaikh:no minifyEnable应该为false。因为如果您将其设置为true,则需要添加proguard。是的,在版本中,build minifyEnabled应该设置为true,这会缩小您的代码,使攻击者更难对您的代码进行反向工程。在版本中,build minifyEnabled必须为true,对吗?@hasan_shaikh:no minifyEnabled应该为false。因为如果您将其设置为true,则需要添加proguard。是的,在发布版本中,build minifyEnabled应设置为true,它会缩小您的代码,使攻击者更难对您的代码进行反向工程I删除此代码,仍然面临相同的问题I删除此代码,仍然面临相同的问题
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'