刘贵学博客

Weex 入门 1 环境安装

1. 安装

weexpack 是面向整个weex项目的管理工具,容易跟 weex init混淆,weex init 适用更简单的情景。

npm install -g weexpack

创建 Weex Hello例子:

weexpack create helloWeex
cd helloWeex
npm install
weexpack platform add android

2. 运行程序

2.1 在 web 端运行

npm run build
npm run serve

2.2 在 android 端运行

使用USB 链接Android手机后,执行命令:

weex run android

3. 用 Android Studio 3.0 打开 weex项目

3.1 坑1: 使用 AS 3.0 提示 从 Gradle 3.0 升级 Gradle 4.1 后,会有一个错误:

Error:(24, 0) Cannot set the value of read-only property ‘outputFile’ for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.
Open File

解决方案:
把 build.gradle 的

applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def outputFile = output.outputFile
        if (outputFile != null && outputFile.name.equals('app-debug.apk')) {
            def fileName = outputFile.name.replace("app-debug.apk", "playground.apk")
            output.outputFile = new File(outputFile.parent, fileName)
        }
    }
}

修改为:

static def releaseTime() {
return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}

android.applicationVariants.all { variant ->
    variant.outputs.all { output ->
        def outputFile = output.outputFile
        if (outputFile != null && outputFile.name.endsWith('.apk')) {
            def fileName = outputFile.name.replace("app", 
                    "${defaultConfig.applicationId}_${defaultConfig.versionName}_${releaseTime()}")
            outputFileName = fileName
        }
    }
}

}

3.3 坑3:

执行 weex run android 时,提示找不到 gradle 3,

3.2 坑2:没有找到 android-23

Error:Missing Android platform(s) detected: 'android-23'
Install missing platform(s) and sync project

因为在AS3.0 下默认使用的 是 SDK 26

compileSdkVersion 26
buildToolsVersion '26.0.2'

compile 'com.android.support:support-v4:26.0.2'
compile 'com.android.support:appcompat-v7:26.0.2'

3.3 替换App ID, App Logo 与 App Name

  1. App Id 的修改在 platforms/android/app/build.gradle

  1. 将不同清晰度的Logo图片,命名为ic_launcher.png 替换到 platforms/android/app/src/main/res,下对应的目录里:

    mipmap-mdpi     160dpi
    mipmap-hdpi     240dpi
    mipmap-xhdpi    320dpi
    mipmap-xxhdpi   480dpi
    mipmap-xxhdpi   720dpi
    
  2. 修改App名称

修改 platforms/android/app/src/main/res/values/strings.xml (也有可能是 values-zh-rCN/strings.xml) app_name 标记。