V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RichardY
V2EX  ›  Android

自行编译 tg 遇到问题

  •  
  •   RichardY · 2021-10-05 15:44:26 +08:00 · 10954 次点击
    这是一个创建于 1175 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想自行编译 android 版 tg,但一直遇到一个错误,换了电脑也是如此,实在不知道怎么解决。

    我的步骤:

    1. 先从 https://github.com/DrKLO/Telegram 把代码 clone 下来,试过直接 clone,也试过

      git clone --recursive https://github.com/DrKLO/Telegram.git

    2. 本地 Android Studio 在 SDK Manager 添加了 Android SDK Platform 31

    1. TMessagesProj\config 下放入我自己的 release.keystore,在 gradle.properties 中修改了 key 的密码

    接下来尝试 sync gradle,就出现如下错误:

    Could not resolve all dependencies for configuration ':TMessagesProj:afatDebugRuntimeClasspath'.
    Could not create task ':TMessagesProj:minifyAfatHAWithR8'.
    Cannot query the value of this provider because it has no value available.
    

    我检查了 TMessagesProj\build.gradle 中的配置如下:

    android {
        compileSdkVersion 31
        buildToolsVersion '31.0.0'
        ndkVersion "21.4.7075529"
        ...
    }
    

    就不清楚为什么 gradle 配置不了。有没有哪位大哥能帮忙看看?

    谢谢

    11 条回复    2021-11-20 21:33:42 +08:00
    hly9469
        1
    hly9469  
       2021-10-05 15:47:04 +08:00 via iPhone
    ndk 安装了?
    RichardY
        2
    RichardY  
    OP
       2021-10-05 15:53:44 +08:00
    @hly9469 装了的
    RichardY
        3
    RichardY  
    OP
       2021-10-05 15:54:58 +08:00
    hly9469
        4
    hly9469  
       2021-10-05 15:58:16 +08:00 via iPhone
    @RichardY 下载跟 buildToolsVersion 一致的 sdk,或者把它改成跟你本地安装的版本一致,小版本也要一样
    RichardY
        5
    RichardY  
    OP
       2021-10-05 16:08:12 +08:00
    @hly9469 我的 sdk 版本是 31,revision 1 (图放帖子里了)
    跟 buildToolsVersion '31.0.0'不符吗?
    dontmind
        6
    dontmind  
       2021-10-05 21:59:14 +08:00
    直接用 android studio 打开是不能 build 的。
    Dockerfile 里有更动 android sdk 的动作。
    khttps://github.com/DrKLO/Telegram/blob/master/Dockerfile#L25
    RichardY
        7
    RichardY  
    OP
       2021-10-05 23:35:35 +08:00
    @dontmind 我理解的 studio 不是从 sdk manager 这里下载了这些内容吗?需要都按他操作一遍? 25 行那里我看它好像原本 sdk 是 30 的,现在升级到 31,但我本来就是 31 的
    dontmind
        8
    dontmind  
       2021-10-06 00:59:29 +08:00 via Android
    @RichardY
    25 行是從 sdk 30 複製少了的檔案至 sdk 31 。
    https://issuetracker.google.com/issues/190734097
    sdk 31 + android gradle plugin < 7 <
    dontmind
        9
    dontmind  
       2021-10-06 01:03:27 +08:00 via Android   ❤️ 1
    这是 sdk 和 android gradle plugin 版本不相容。



    sdk 31 + android gradle plugin < 7 的話是不能编译。

    你可以降低 sdk 版本, 或是更新 android gradle plugin/android studio/, 或是运行 25-26 行
    RichardY
        10
    RichardY  
    OP
       2021-10-06 17:51:07 +08:00
    @dontmind 谢谢按你说的方法解决了那个报错,现在尝试 build 。
    sorcerer
        11
    sorcerer  
       2021-11-20 21:33:42 +08:00
    老哥,你成功编译了么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1622 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 16:43 · PVG 00:43 · LAX 08:43 · JFK 11:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.