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

API在IntelliJ可正常调用但Android Studio中执行中断无报错如何解决

问题原因排查及解决方案

核心触发原因

  1. 主线程网络请求限制
    Android 3.0及以上系统强制禁止在主线程执行网络请求操作,若你当前将requestData方法直接在Activity主线程调用,执行到con.getInputStream()时会抛出NetworkOnMainThreadException。你现有代码仅捕获了IOException,该异常属于运行时异常,不会被现有catch逻辑捕获,因此出现代码中断执行、无异常抛出的表象。
  2. 网络权限缺失
    安卓应用访问网络必须提前声明网络权限,若未在AndroidManifest.xml中配置INTERNET权限,网络请求会直接被系统拦截,现有异常逻辑无法捕获对应错误。
  3. 明文流量限制
    如果你调用的天气接口是HTTP协议而非HTTPS协议,Android 9.0及以上系统默认禁止明文HTTP请求,也会导致请求直接中断。

对应修复方案

  • 调整线程逻辑,将网络请求放到子线程执行,Java环境下可直接通过Thread+Handler实现异步请求示例如下:
// 子线程执行网络请求
new Thread(new Runnable() {
    @Override
    public void run() {
        try {
            String result = requestData("目标城市");
            // 如需更新UI,通过Handler切换到主线程操作
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    // 此处执行UI更新逻辑
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}).start();
  • 在AndroidManifest.xml的manifest标签下添加网络权限声明:
<uses-permission android:name="android.permission.INTERNET" />
  • 若使用HTTP接口,可在AndroidManifest.xml的application标签中添加配置临时放行明文请求(正式上线建议换成HTTPS接口):
<application
    ...
    android:usesCleartextTraffic="true">
    ...
</application>
  • 优化异常捕获逻辑,可添加通用Exception捕获分支,便于后续排查其他未知错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:18:04