Ionic构建打包apk出现的问题集合

当我们写完 ionic 项目准备打包成 apk 时(比如执行 ionic cordova platform add android 或者 ionic cordova build android 等命令),经常会出现一些莫名其妙的问题,特别是对原生开发并不太熟悉的人,往往就是一脸懵逼啊。

因此,很有必要将这些经常出现的问题及对应解决方案做一个汇总,方便查阅。

问题1

BUILD FAILED

Total time: 29.304 secs
Error: cmd: Command failed with exit code 1 Error output:
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:font
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontStyle
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontWeight
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:ttcIndex

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ‘:processArmv7ReleaseResources‘.
> com.android.ide.common.process.ProcessException: Failed to execute aapt

产生原因

主要原因是 cordova-plugin-compat 插件升级引起的,该插件已经包含在 cordova-android 6.3.0 中。如果你的应用使用了地理定位、文件操作或者其它依赖 cordova-plugin-compat 插件的插件的话,而 cordova-plugin-compat 这个插件已经包含在 cordova-android 6.3.0,如果你的 cordova-android 版本小于 6.3.0,则会出现这个问题。

解决方法

  • 升级 [email protected] 以上
  • 升级 android-sdk/platforms 到 android-26 以上
  • 删除 cordova-plugin-compat 插件,删除 plugins/android.jsonplugins/fetch.json 中有关该插件的信息,并升级依赖该插件的其它所有插件

参考资料

https://forum.ionicframework.com/t/android-build-broken-after-gradle-dependencies-update-execution-failed-for-task-processdebugresources-com-android-ide-common-process-processexception-failed-to-execute-aapt/109982/80

问题2

Error: Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle
in your path, or install Android Studio

产生原因

window 开发环境下没有将 gradle 配置到环境变量 path 中。

解决方法

  • https://services.gradle.org/distributions/ 下载对应版本的 gradle,如 gradle-3.3-bin.zip
  • gradle-3.3-bin.zip 解压之后放置到某个目录下,如 D:\Program Files\gradle-3.3
  • 在环境变量 path 中添加 D:\Program Files\gradle-3.3\bin
  • 打开 cmd 输入 gradle -v,验证是否配置成功

参考资料

https://blog.csdn.net/capmiachael/article/details/73289478

问题3

下载 gradle-xxx-all.zip 太慢或失败

BUILD SUCCESSFUL

Total time: 6.591 secs
Subproject Path: CordovaLib
Downloading https://services.gradle.org/distributions/gradle-3.3-all.zip
...

产生原因

下载 gradle 是直接在 http://services.gradle.org/distributions/ 上下载的,由于国内网络的限制,而 gradle-x.x-all.zip 文件比较大(60M以上),因此下载的过程会比较漫长,有时候会下载失败(当然如果有梯子,这个问题应该就不存在了,但是下载应该也不会太快)。

解决方法

  • https://services.gradle.org/distributions/ 下载对应版本的 gradle,如 gradle-3.3-all.zip
  • 无需下载,放在项目下的 platforms/android/gradle 目录下
  • 找到项目下的 platforms/android/cordova/lib/builders/GradleBuilder.js,然后修改其中的 var distributionUrl = process.env[‘CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL‘] || ‘http\\://services.gradle.org/distributions/gradle-2.14.1-all.zip‘;var distributionUrl = process.env[‘CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL‘] || ‘../gradle-3.3-all.zip‘;

参考资料

https://www.cnblogs.com/macq/p/6494798.html

问题4

gradle 构建时下载 maven 太慢

产生原因

依然是网络的原因。

解决方法

  • 使用国内阿里云的服务,修改项目下的 platforms\android\build.gradle 为:
buildscript {
    repositories {
        maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/‘}
    }
}

allprojects {
    repositories {
        maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/‘}
    }
}

参考资料

https://www.cnblogs.com/Ave-Maria/p/6274621.html

问题5

Execution failed for task ‘:app:processDebugResources‘. > Failed to execute aapt

产生原因

暂时不清楚。

解决方法

/platforms/android 中新建 build-extras.gradle 文件,并添加如下内容:

configurations.all {
    resolutionStrategy {
        force ‘com.android.support:support-v4:27.1.0‘
    }
}

如果是 cordova-android 7.0.0,则也要在 /platforms/android/app 中新建 build-extras.gradle 文件。

参考资料

https://stackoverflow.com/questions/49162538/running-cordova-build-android-unable-to-find-attribute-androidfontvariation/49172982#49172982

问题6

Error: cmd: Command failed with exit code 1 Error output:
Exception in thread "main" java.lang.RuntimeException: Timeout of 120000 reached waiting for exclusive access to file: C:\Users\laixiangran\.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9\gradle-3.3-all.zip
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
        at org.gradle.wrapper.Install.createDist(Install.java:48)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

产生原因

主要还是网络原因,导致无法在 C:\Users\你的用户名\.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9 中解压 gradle-3.3-all.zip

解决方法

  • https://services.gradle.org/distributions/ 下载对应版本的 gradle,如 gradle-3.3-all.zip
  • -然后在 C:\Users\你的用户名\.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9 中解压

原文地址:https://www.cnblogs.com/laixiangran/p/9160593.html

时间: 2025-01-12 00:33:51

Ionic构建打包apk出现的问题集合的相关文章

ionic打包apk 的三个环境变量配置

ionic--安装Java jdk并配置环境变量 前言:jdk是 Java 语言的软件开发工具包,它包含了Java 的运行环境,Java 工具和Java 基础的类库.做java web开发,android开发,还有现在流行的混合式App开发,都需要安装jdk oracle官网下载jdk 如下4张图按步骤可以找到jdk的下载路径,也可以点这里去选择你想要的版本 Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png 安装jdk

ionic2新手入门整理,搭建环境,创建demo,打包apk,热更新,优化启动慢等避坑详解

onic官方文档链接:http://ionicframework.com/docs/ 如果是新的环境会有很多坑,主要是有墙,请仔细阅读每个步骤 文档包含以下内容: l  环境搭建 l  创建demo并调试运行 l  打包APK l  添加支持热更新 l  优化启动慢问题 l  常用命令 1.      环境搭建 需要安装以下软件和插件(Android): l  安装nodeJS(自带npm) l  配置cnpm  (使用淘宝镜像取代npm) l  安装cordova和ionic2 l  安装JA

Jenkins 2.46 打包apk后生成下载二维码

这篇文章的前提是已经可以通过gradle构建并成功打包apk的情况下,只介绍利用"蒲公英"的应用托管平台(https://www.pgyer.com/)上传打包好的apk和在当前构建历史中生成二维码. 1.注册"蒲公英" 帐号,这个不用多说. 2.查看并记录API信息:通过右上角账户设置里查看,如图: 3.进入Jenkins安装插件:description setter plugin 其它基础的就不说了,这个是可以修改build的描述,以便生成二维码. 4.到Jen

maven(android-maven-plugin3.8.0)打包apk无法启动,apklib依赖包的资源索引出错(R文件与主模块冲突)问题解析

近期在用maven,遇到了一个问题,用maven打出的apk有问题无法启动,但是用idea打包的就是正常的. 日志中显示的问题是,一个apklib形式的依赖包中的一个资源出现了问题.反编译对比maven包和idea包,找到了问题所在. 假设: 主模块包名为com.android.main apklib依赖包包名为com.android.apklib 出问题的资源(layout)名为MyView 问题: apk打包后apklib依赖包的资源文件会与主模块的资源整合到一起,依赖包引用资源实际上是在主

在Hudson中,使用ant自动对安卓项目编译打包apk

本文对如何在hudson中配置ant编译打包apk进行说明,主要包括build.xml文件的编写.环境的配置.在Hudson中创建任务. 一.为安卓项目创建build.xml文件 1.打开cmd进入sdk目录下的tools目录,输入: android.bat list target  来查询我们现有的版本list有哪些.如下图: 途中用红框圈出的 id 与蓝框圈出的版本号对应关系,下面需要用到. 2.打开安卓项目工程下的 project.properties 文件,查看target 版本号,如下

android Apk打包过程概述_android是如何打包apk的

最近看了老罗分析android资源管理和apk打包流程的博客,参考其他一些资料,做了一下整理,脱离繁琐的打包细节和数据结构,从整体上概述了apk打包的整个流程. 流程概述: 1.打包资源文件,生成R.java文件 2.处理aidl文件,生成相应java 文件 3.编译工程源代码,生成相应class 文件 4.转换所有class文件,生成classes.dex文件 5.打包生成apk 6.对apk文件进行签名 7.对签名后的apk文件进行对其处理 打包过程使用的工具 名称 功能介绍 在操作系统中的

ant使用总结(一):使用ant自动打包apk

配置ant环境 (1)下载ant 下载地址一:http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.4-bin.zip 下载地址二:http://pan.baidu.com/s/1gdnc98n (2)解压ant,并把bin目录路径配置到系统path变量中 在命令行窗口中能执行ant命令表示配置成功 更新工程配置 (1)打开命令行窗口,执行如下命令: SDK根目录\tools\android update project --na

解决Eclipse不能打包APK报错的问题

1.在Android SDK Tool r19之后, Export的时候遇到xxx is not translated in yyy, zzz的问题. 例如说"auto_exit" is not translated in zh, zh_CN. 这是因为Android SDK Tool 將 ANDROID_LINT_COMPLETE_REGIONS 改为了需要检查. 临时解决方法:Eclipse > Preference > Android > Lint Error

cocos环境配置和打包apk

环境: Win10 + vs2015 + cocos2d-X-3.10 开发  软件的安装与环境配置: 资源准备:(后面备注的版本为笔者所选的) 1  python (python-2.7.3) 2  CocosForWin-v3.10(官网可下载) 3  vs2015 分别安装以上三个软件,路径没有限制,但是路径名称最好不要出现中文/空格等特殊字符,包括后面建立项目时项目的存放路径,最好用纯英文+"-",比如"cocos2d-x-3.10",因为笔者以前就因为路径