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

Android集成Telegram Bot API遇invokeDynamic不支持错误求助

解决Telegram Bot SDK在Android项目构建时的Dex转换错误

嘿,我刚看完你的问题,核心问题其实已经在报错信息里说得很清楚了——invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)。

问题原因

你引入的telegrambots-3.4-jar-with-dependencies.jar里面使用了invokedynamic字节码指令,这个指令是Android 8.0(API Level 26)才开始支持的,但你的项目minSdkVersion设置的是15,远低于这个要求,所以Dex编译器在处理这个jar包的时候直接报错了。那个InnerClasses的警告是次要问题,先解决核心的版本兼容问题再说。

解决方案

这里给你两个方向的解决办法,你可以根据自己的需求选:

方案一:提升项目的最低SDK版本(最简单直接)

如果你能接受你的App只支持Android 8.0及以上设备,那直接修改app/build.gradle里的minSdkVersion为26就行:

android {
    defaultConfig {
        // 其他配置不变
        minSdkVersion 26  // 把这里从15改成26
        targetSdkVersion 26
    }
}

改完之后重新构建,这个Dex错误应该就消失了。

方案二:保持低版本SDK,更换兼容的Bot依赖

如果你的App必须支持API 15的设备,那你得换一个不依赖invokedynamic指令的Telegram Bot库:

  • 尝试降级telegrambots SDK版本,比如找3.4之前的版本(比如3.3),看看旧版本有没有使用这个指令;
  • 或者放弃使用这个封装好的SDK,直接通过HTTP请求调用Telegram Bot的官方API,这样完全由你自己控制请求逻辑,兼容性更好。

关于那个InnerClasses警告

如果你改完核心问题后还能看到这个警告,可以在app/build.gradle的android节点下添加以下配置来抑制它:

android {
    // 已有配置...
    dexOptions {
        javaMaxHeapSize "4g"
        preDexLibraries = false
    }
}

不过这个警告一般不会影响App功能,主要是jar包编译时的内部类信息不够完整导致的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:20:33