构建错误-Ionic Cordova因android而失败

时间:2018-03-08 00:22:34

标签: android cordova ionic3 cordova-plugins

运行命令时出现以下错误"离子cordova构建android --stacktrace" :

:generateDebugResources
:mergeDebugResources

:processDebugManifest

:processDebugResources
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings
 FAILED
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:ttcIndex

I am using following tools on Window's:
 Editor : VScode

Ionic: C:\Users\xyz>ionic -version
3.19.1
Npm as packagemanager

项目属性:

target=android-26
cordova.system.library.1=com.google.android.gms:play-services-analytics:+
cordova.system.library.2=com.facebook.android:facebook-android-sdk:4.+
cordova.gradle.include.1=cordova-plugin-appsflyer-sdk/customerapp-cordovaAF.gradle
cordova.gradle.include.2=twitter-connect-plugin/customerapp-twitter.gradle
cordova.system.library.3=com.android.support:support-v4:26.+
cordova.system.library.4=com.android.support:appcompat-v7:26.+
cordova.system.library.5=com.android.support:support-v4:24.1.1+
cordova.system.library.6=com.android.support:support-v4:+
android.library.reference.1=CordovaLib

8 个答案:

答案 0 :(得分:10)

我必须做以上两个答案的内容:

platforms / android / phonegap-plugin-barcodescanner 中:

搜索compile 'com.android.support:support-v4:+并替换compile 'com.android.support:support-v4:27+'

platforms / android

搜索cordova.system.library.2=com.android.support:support-v4:+并替换cordova.system.library.2=com.android.support:support-v4:27.1.0

希望它有所帮助。

答案 1 :(得分:3)

在离子论坛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/134上发现了这个对我有用的建议是#34;我的工作正常,我的问题在cordova-plugin-file-opener2。更改{{1}在com.android.support:support-v4:+中{}为com.android.support:support-v4:23+插件文件夹中的plugin.xml和node_modules文件夹。
然后在cordova-plugin-file-opener2的{​​{1}}中进行相同的操作。
我的插件是背景地理位置,实际上我不相信我必须在{{1}中修复我的。

答案 2 :(得分:3)

Mine需要一个与上面类似的解决方案,只需要在de.appplant.cordova.plugin.local-notification插件中。我将'com.android.support:support-v4:+'更改为'com.android.support:support-v4:23+'然后删除并添加了android平台并构建它。但是,我有一个额外的支撑&#39;}&#39;在我的build-extras.gradle中也必须删除。

答案 3 :(得分:2)

在我的情况下,问题在于条形码扫描仪插件。删除和添加此插件无法正常工作,毕竟通过更改&#39; com.android.support:support-v4:+ &#39; &#39; com.android.support:support-v4:27 +&#39; 在文件&#39; platform / android / phonegap中-plugin-barcodescanner / {PROJECTNAME} -barcodescanner&#39; 即可。我不明白的是项目昨天工作得很好,24小时内发生的事情发生了这个问题......

答案 4 :(得分:1)

如果出现同样的问题,我所做的就是:

  1. 清除构建目录
    • cordova clean
  2. 在android下添加multiDexEnabled - &gt; defaultConfig到build.gradle文件
    • “your project \ platforms \ android \ app \ build.gradle”
    • multiDexEnabled true
  3. 更改build.gradle文件中“com.android.support”的依赖项
    • com.android.support:support-v4:+ =&gt; com.android.support:support-v4:23 +
  4. 浏览plugins文件夹并查看所有“plugins.xml”并替换:
    • com.android.support:support-v4:+ =&gt; com.android.support:support-v4:23 +
  5. 更改“platforms \ android \ project.properties”下的project.properties
    • cordova.system.library.4 = com.android.support:支持-V4:23 +
  6. 运行“ionic cordova run build”
  7. 无法合并dex

    清理安装

    错误的命名空间/版本

    android {
    
        defaultConfig {
            multiDexEnabled true
            versionCode cdvVersionCode ?: new BigInteger("" + privateHelpers.extractIntFromManifest("versionCode"))
            applicationId privateHelpers.extractStringFromManifest("package")
    
            if (cdvMinSdkVersion != null) {
                minSdkVersion cdvMinSdkVersion
            }
        }
    }
    

答案 5 :(得分:0)

我没找到&#34; com.android.support:support-v4:+&#34;在我搜索的主题的指示路径中,我最后在所有文件夹中尝试并在

中找到
  

平台/机器人/ PhoneGap的-plugin-的 barcodescanner .gradle

在我的情况下,插件是条形码扫描器,在你的可能是另一个。  然后我跟踪了这​​些信息并替换为&#34;&#39; com.android.support:support-v4:27 +&#34;它起作用了。

我想知道它是否在昨天完美运行,今天我只更改了一个文本并给出了这个错误...在构建期间我意识到发生了一些下载我相信发生了更新导致了这一点。

答案 6 :(得分:0)

我昨天遇到了同样的问题。它是随机开始的,但是从阅读开始,看起来它与@ cpro90上面提到的更新有关。但是,我试过并找不到在哪里进行必要的手动更改。

最终我发现问题是由我的cordova-plugin-crosswalk-webview插件引起的。在Github上,我今天早上在插件上发现了这个问题,午餐时它有超过520个观看次数。

@UNUMObile在build.gradle文件中建议以下内容强制全局使用早期版本:

    configurations.all {
       resolutionStrategy.force 'com.android.support:support-v4:24.0.0'
    }

这对我来说很有效,并且可以帮助其他插件,这些插件也依赖于&com; android.support:support-4:&lt; 28。新版本28似乎是个问题。

希望这有助于某些人前进。

答案 7 :(得分:0)

替换&#39; com.android.support:support-v4:+&#39; &#39; com.android.support:support-v4:27+在plugin.xml中使用固定版本&#39; 对我们没有用 - cordova crosswalk至少更新了一个支持库,版本为 28.0.0-alpha1 。< / p>

为每个依赖项强制支持库的固定版本最终可以解决问题。

configurations.all {
resolutionStrategy {
    eachDependency { DependencyResolveDetails details ->
        if (details.requested.group == 'com.android.support') {
            details.useVersion "27.1.0"
        }
    }
}