【问题标题】:Ionic Could not find support-vector-drawable.aar离子找不到支持向量drawable.aar
【发布时间】:2018-10-24 17:18:32
【问题描述】:

在我的 Ionic 应用程序上有一个奇怪的问题,我昨天能够正常构建,但是在一个构建中它下载了一堆文件,就像在构建 android 时一样,然后我收到以下错误:

找不到 support-vector-drawable.aar (com.android.support:support-vector-drawable:27.1.1)。 在以下位置搜索: https://jcenter.bintray.com/com/android/support/support-vector-drawable/27.1.1/support-vector-drawable-27.1.1.aar

当点击链接 https://jcenter.bintray.com/com/android/support/support-vector-drawable/27.1.1/support-vector-drawable-27.1.1.aar 时,页面具有以下 JSON:

{
  "errors": [
    {
      "status": 404,
      "message": "Could not find resource"
    }
  ]
}

【问题讨论】:

    标签: android cordova android-studio ionic-framework ionic3


    【解决方案1】:

    很高兴知道我不是唯一一个。这也发生在我身上。

    过去我不得不使用cordova-android-support-gradle-release 插件来处理与利用不同版本的android 支持库的不同插件的冲突。我一直在使用这个版本为27.+ 的cordova 插件。将其更改为强制版本27.1.0 为我重新构建了东西。 (添加该插件的命令如下)。

    cordova plugin add cordova-android-support-gradle-release  --variable ANDROID_SUPPORT_VERSION=27.1.0
    

    显然,很高兴知道为什么这个 27.1.1 文件今天丢失了,这将允许继续使用 27.+。但是,希望这能让您再次运行。

    ----2/6/2019 更新:----

    在过去的 4 个月里,我的项目中已解决此问题。然后今天又回来了。由于某种原因,cordova-android-support-gradle-release .gradle 文件没有被添加到构建中(即使其他文件被添加)。我按照@Moofish 的回答,删除/重新安装了插件(再次在 27.1.0)。然后构建再次开始工作。对我来说,这确实将cordova-android-support-gradle-release 插件从@1.4.4 升级到@2.0.1。不确定这是侥幸还是意料之中的事情。

    【讨论】:

    • 这将通过安装插件添加到 config.xml 中。为了清楚起见,我编辑了答案。试试上面的命令。如果您使用 ionic,显然您可以在命令前加上 ionic,类似于其他插件安装命令。
    • 您可能需要清除插件目录,删除平台,然后重新添加平台。不确定此插件是否会追溯修复已安装的内容。或者查看文档以确保您为您的设置正确安装它。显然这也有可能无法解决您遇到的问题,但它为我解决了它(我的也打破了这个 AM)。 github.com/dpa99c/cordova-android-support-gradle-release
    【解决方案2】:

    如果您不想使用您的插件或 Android 支持版本,我将留下与 BRass' 不同的解决方案。

    我们在尝试构建我们的应用程序时遇到了完全相同的错误,并通过在 after_platform_add 上添加脚本挂钩以重新排序 build.gradle 文件中的存储库列表来解决它,以便项目在不同的位置查找 .aar地点。

    // Add <hook src="path/to/after_platform_add.js" type="after_platform_add" /> to your config.xml
    
    var fs = require('fs');
    
    module.exports = function(ctx) {
        var gradlePath = './platforms/android/build.gradle';
        var gradleFile = fs.readFileSync(gradlePath, 'ascii');
        if (ctx.opts.platforms[0].indexOf('android') !== -1) {
            gradleArray = gradleFile.split('\n');
            for (var i = 0; i < gradleArray.length; i++) {
                if (gradleArray[i].includes('jcenter()') && gradleArray[i + 1].includes('maven')) {
                    var jcenter = gradleArray.splice(i, 1)[0];
                    gradleArray.splice(i + 3, 0, jcenter);
                }
            }
            gradleFile = gradleArray.join('\n');
            fs.writeFileSync(gradlePath, gradleFile);
            console.log('Reordered repositories');
        }
    }
    

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,我已经安装了cordova-android-support-gradle-release的插件,所以我删除了插件(ionic cordova plugin rmcordova-android-support-gradle-release)并重新安装了插件(cordova plugin add cordova-android-support-gradle-release --variable ANDROID_SUPPORT_VERSION=27.1.0),emmm...并且成功了!

      【讨论】:

        【解决方案4】:

        尝试将平台和 app/build.gradle 中的 build.gradle 更改为:

        {
                mavenCentral()
                google() // Add this
                jcenter()
                maven {
                    url "https://maven.google.com"
                }
            }
        

        【讨论】:

        • 下面是cordova应用程序,build.gradle文件是由cordova生成的。它会在不同的点上被踩到(而且它通常不受源代码控制)。
        猜你喜欢
        • 2019-03-28
        • 2020-07-13
        • 2020-01-26
        • 2014-06-28
        • 1970-01-01
        • 2018-07-02
        • 2010-12-04
        • 2018-02-10
        • 2020-02-21
        相关资源
        最近更新 更多