weex源码编译踩坑记录
前言
在gradle声明依赖,sync的时候依赖一直拉不下来,提示Fail to resolve: org.apache.weex:sdk:0.28.0,尝试过换阿里云镜像、走梯子,依然无法获取到依赖。

编译过程
- 获取源码
git clone https://github.com/alibaba/weex- 准备安卓环境,最终sync通过的环境 - gradle 6.5
- classpath 'com.android.tools.build:gradle:4.1.1'
- ndk.dir=D\:\\Android\\Sdk\\ndk-bundle
 
- gradle配置踩坑 - buildSrc/packageName.gradle文件注释掉以下代码,不注释会提示task无法创建task(cleanCopyProguard, overwrite: true, type: Delete){ delete 'proguard-rules-legacy.pro' }
- buildSrc/jcenter.gradle文件,对应节点修改为以下配置artifactory { contextUrl = 'http://oss.jfrog.org/artifactory' publish { repository { repoKey = 'oss-snapshot-local' username = bintray.user password = bintray.key maven = true } defaults { // 注释以下行 // publications ('artifactorySnapthost') } } }
- 在命令行编译没有问题,如果在android studio编译会提示Merged dex is null. We tried to merge 0 DEX files、Unable to merge dex,需要在sdk模块的gradle配置添加依赖。compile 'com.android.support:multidex:1.0.3'
 
- buildSrc/packageName.gradle文件注释掉以下代码,不注释会提示task无法创建
- cpp踩坑 - 编译报错'assert' : undeclared identifier,在cpp文件中添加包含,需要修改的文件:js_runtime/weex/task/back_to_weex_core_queue.cpp、js_runtime/weex/task/timer_queue.cpp、js_runtime/weex/task/weex_task_queue.cpp。注意,这些文件都是在weex-master项目根目录下的weex_core/Source目录中修改,而不是修改android项目的cpp文件。#include <assert.h>
 
- 编译报错
- 编译出来的aar包名是 - com.taobao.weex
总结
根据报错,找到报错行,判断是否影响实际功能,如果不影响则可以直接注释掉。
weex源码编译踩坑记录
      http://blog.icy8.cn/posts/1853495173/