在windows上进行taro Android开发

最近有空研究了一下使用taro来进行react-native的开发。按照taro官网的教程一步步创建项目,坑还是比较多的。taro rn提供了两种创建项目的方式。集成模式分离模式。为什么要用taro来开发react-native项目呢。其实还是看中了taro提供大量的常用的API。方便在开发的时候进行快速调用,而不用一个个库的去集成,也避免了各个库之间产生冲突。

分离模式

js项目代码和原生项目分离,打包的时候需要输出js项目工程到壳工程进行打包。开发的时候需要配合Taro Playground 来进行开发。即开发完成之后通过Taro Playground扫二维码进行预览。

集成模式

js项目代码和原生项目代码集成在一起。我比较喜欢这种方式,这样也方便我们自己添加三方依赖库。添加了三方依赖库之后重新打包运行就能看到效果。和react-native的开发方式没太大区别。

使用集成模式开发项目

  1. 初始化一个taro rn项目

    bash 复制代码
    npx @tarojs/cli init taro-rn-demo
  2. 参考下图选择依赖

  3. 项目初始化完毕之后执行下面的bash命令

    bash 复制代码
    yarn install // 安装依赖 这儿一定要用yarn安装,不要用npm或者其他的依赖包安装
    yarn upgradePeerdeps // 升级依赖
  4. Mac系统上完成上面的步骤运行npm run android或者npm run iOS。应该就可以正常启动了,但是在window上运行npm run android可能会出现如下报错

    bash 复制代码
    Could not read script 'E:\textCode\myapp\scripts\autolinking.gradle' as it does not exist. 

    解决方案:

    bash 复制代码
    yarn add expo@47.0.9 // 安装expo 依赖库。

    expo和react-native版本有对应关系。参考下图,所以安装expo的时候尽量安装和react-native版本相匹配的expo

    等待安装完成之后再次执行npm run android就可以正常启动了。如果gradle下载慢的话可以替换taro-rn-demo/android/gradle/wrapper/gradle-wrapper.properties文件里面的distributionUrl为国内镜像

    bash 复制代码
    distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.5.1-all.zip

其他错误合集

  1. 执行npm run android出现Plugin with id 'kotlin-android' not found.

    bash 复制代码
    // taro-rn-demo/android/build.gradle 添加如下两行代码
    buildscript {
        ext {
            kotlin_version = '1.6.21' // 添加 kotlin-android 版本
            buildToolsVersion = "31.0.0"
            minSdkVersion = 21
            compileSdkVersion = 31
            targetSdkVersion = 31
    
            if (System.properties['os.arch'] == "aarch64") {
                ndkVersion = "24.0.8215888"
            } else {
                ndkVersion = "21.4.7075529"
            }
        }
        repositories {
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
            google()
            mavenCentral()
        }
        dependencies {
            classpath("com.android.tools.build:gradle:7.2.1")
            classpath("com.facebook.react:react-native-gradle-plugin")
            classpath("de.undercouch:gradle-download-task:5.0.1")
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // 添加kotlin-android 依赖
        }
    }
相关推荐
IT_陈寒19 分钟前
Vite的热更新突然不香了,排查三小时差点砸键盘
前端·人工智能·后端
子兮曰1 小时前
Agency-Agents 深度解析:400+ AI 专家的"梦之队"如何重塑开发工作流
前端·后端·vibecoding
竹林8181 小时前
用 The Graph 查询链上数据实战:从手搓 RPC 到 Subgraph,我的 NFT 项目数据加载快了 10 倍
前端·javascript
妙码生花2 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十九):点选验证码代码逐行目检
前端·后端·go
Awu12272 小时前
⚡从零开发 Agent CLI(五)实现一个可治理、可扩展的工具系统
前端·人工智能·claude
咪库咪库咪3 小时前
Vue3-生命周期
前端
莪_幻尘3 小时前
你的 AI Skill 越多越蠢?Token 上下文爆炸的求生指南
前端·ai编程
lichenyang4534 小时前
从 has.echo 到异步 API 注册表:一次 ASCF API 回调不触发的排查复盘
前端
林瞅瞅4 小时前
Nuxt3 项目部署 Nginx 防盗链后特定 JS 文件 403 问题修复方案
前端
kyriewen4 小时前
别再每次都 Google 了:我整理了前端日常最常踩的 10 个 Git 坑,附速查表
前端·javascript·git