gpt4 book ai didi

Android 项目在 Android Studio 4.0.1 编译时无法运行

转载 作者:行者123 更新时间:2023-12-03 13:26:10 24 4
gpt4 key购买 nike

这是一个很长的故事,我将尝试提供尽可能多的细节。
几个月来,我一直在使用 android studio 3.x.x 构建我的应用程序,直到最近它才开始为我提供最新的稳定版 4.0.1 的更新。
我更新了,它应该是无忧无虑的,所有插件都更新没有错误,代码首先在新的 android studio 中编译,项目在测试中运行良好,然后我上传到 play store 的内部测试轨道(这里问题开始)。
该应用程序开始在某些设备中显示某种锁定或无限循环错误...这很奇怪,因为运行调试版本时相同的设备很好,此时我认为有些 proguard rules是问题所在。所以我调整了build.grade文件以 debug build 具有与 release 相同的设置构建(缩小和缩小 TRUE)。
编译后,应用程序在模拟器和有问题的设备中运行顺利......
我再次将它上传到谷歌播放,并从那里下载该应用程序不起作用......
我做了一个非常详尽和烦人的代码调试,以便以某种方式锁定什么方法,我发现了这个嫌疑人:

OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder();
httpClientBuilder.readTimeout(15000, TimeUnit.MILLISECONDS);
httpClientBuilder.writeTimeout(15000, TimeUnit.MILLISECONDS);
httpClientBuilder.connectTimeout(15000, TimeUnit.MILLISECONDS);
httpClientBuilder.retryOnConnectionFailure(true);
httpClientBuilder.followRedirects(true);
httpClientBuilder.followSslRedirects(true);
httpClientBuilder.connectionPool(DEFAULT_CONNECTION_POOL);
Dispatcher dispatcher = new Dispatcher();
dispatcher.setMaxRequests(10);
dispatcher.setMaxRequestsPerHost(10);
httpClientBuilder.dispatcher(dispatcher);
okHttpClient = httpClientBuilder.build();

private boolean isInternetOK(){
boolean ret = false;
try {
okHttpClient.newCall(new Request.Builder().get().url("https://www.google.com").build()).execute();
ret true;
} catch (Exception e) {
}
return ret;
}
在我的启动器 Activity 中,在开始登录之前,我会验证用户的互联网连接是否正常,这是一个简单的代码和 httpclient超时时间为 15 秒,因此会快速连接或失败。
对我来说,为什么这种特定方法在开发中有效,而在从 Play 商店提供服务时无效(在相同的设备和相同的构建配置中),这对我来说毫无意义
我花了几个小时试图解决这个问题......直到我决定将 android studio 降级到我使用的以前的版本。以及自己解决的问题!
所以我 100% 确定问题与 android studio 4.0.1 及其 gradle 插件以及它们如何与 "com.squareup.okhttp3:okhttp:3.12.12" 交互有关。
这是我所做的观察:
1- android studio 4.0.1 生成的 apk 为 4.18MB,而 3.6.3 生成的 apk 为 4.33MB(相同 build.config 和相同 proguard.rules )
2- 将 android studio 更新到 4.0.1 proguard.rules 后开始显示很多错误,就像这里所说的: Unresolved class name proguard-rules Android Studio 4.0但仍然可以正常编译(并且在使用收缩和缩小的调试中工作正常)
3-项目中唯一的区别是android studio版本和 com.android.tools.build:gradle依赖,因为它必须遵循 android studio 版本。
好吧,据我所知,我可以提供更多信息,甚至可以提供从不同版本编译的 apk,如果有人可以帮助我...现在我需要 sleep ,因为今天是 23h30,是星期六,我输了 7在这个垃圾更新中我生命中的几个小时

最佳答案

如果您的方法在某些设备上不起作用,检查互联网可能对您有帮助
您还可以确认您的错误是由于检查互联网或任何其他

boolean hasActiveInternetConnection() {
try {
InetAddress ipAddr = InetAddress.getByName("google.com");
return !ipAddr.equals("");
} catch (Exception e) {
return false;
}
}

关于Android 项目在 Android Studio 4.0.1 编译时无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63432488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com