weex打包android apk的坑

1.首先装个weexpack

使用npm build [web|ios|android]这样的命令总是会报错no such file or directory, open '***.package.json',也找不到相关文档说明。所以还是装个weexpack来用的好。
npm install weexpack -g
当然也得安装好android的开发环境。

2.cd进项目目录然后安装依赖

npm install

3. 运行或打包

$ weexpack build android

报错

Error: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.

这是由于升级Android studio3以后,buide.gradle里老的写法不顶用了,要改成如下:

    android.applicationVariants.all { variant ->
        variant.outputs.all {
            outputFileName = "weex-app.apk"
        }
    }

4.再次运行及打包

再次报错误

Error:Execution failed for task ':app:javaPreCompileDebug'.Annotation processors must be explicitly declared now.  The following dependencies on the compile classpath are found to contain annotation processor.  Please add them to the annotationProcessor configuration.
- weexplugin-processor-1.3.jar (com.taobao.android:weexplugin-processor:1.3)
Alternatively, set android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true to continue with previous behavior.  Note that this option is deprecated and will be removed in the future.
See https://developer.android.com/r/tools/annotation-processor-error-message.html for more details.

需要在build.gradle文件的defaultConfig中添加相关设置

      javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath = true
            }
        }

5. Will start Android app 或 No android devices found

到这里卡住没有动静了。一般是adb没连上。然而并不知具体怎么了。最后还是在Android studio里打开项目build了事。

你可能感兴趣的:(weex打包android apk的坑)