AndroidX突然导致NativeScript的构建失败

乔什科姆利

突然之间,我的依存关系没有变化,现在出现以下错误:

Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
        is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
        Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:18:2-31:16 to override.

我尝试应用建议(以及相关的命名空间XML属性),但不幸的是,这会产生一条消息,类似multiple errors, see logs,但我不知道日志在哪里。

我已经阅读并阅读了此书,并且我理解尝试同时拥有AndroidX和现已弃用的支持库是一个问题。但是,在此突然停止构建之前,我没有更改任何依赖关系-仅清除了平台以强制进行完全重建。

我不知道哪个插件有冲突,而且我也知道Jetifier应该解决这个问题,除了NativeScript似乎不让我能够以gradle.properties任何持久的方式(我知道)进行修改,并且当前没有使用NativeScript的最新版本(这是令人困惑,因为NativeScript5.4.1TNS核心模块5.4.2在我加入这个平台package.json似乎是5.4.0)似乎不使用Jetifier和NPM最新AndroidX构建似乎有点过时了。

那么,如何才能立即恢复我的应用程序并使其运行呢?救命!

乔什科姆利

因此,我通过将支持依赖项移入来解决了这个问题before-plugins.gradle,现在看起来像这样:

project.ext {
  googlePlayServicesVersion = "15.0.0"
}

dependencies {
  compile 'com.squareup.picasso:picasso:2.71828'
  def googlePlayServicesVersion = project.googlePlayServicesVersion
  compile "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
  compile "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
  def supportVer = "28.0.0"
  compile "com.android.support:support-v4:$supportVer"
  compile "com.android.support:appcompat-v7:$supportVer"
  compile "com.android.support:design:$supportVer"
}

好吧,这是我的app.gradle

android {
  defaultConfig {
    // Fix for: The number of method references in a .dex file cannot exceed 64K.
    // (see: https://developer.android.com/tools/building/multidex.html)
    multiDexEnabled true
    minSdkVersion 17
    generatedDensities = []
  }
  aaptOptions {
    additionalParameters "--no-version-vectors"
  }
}

def settingsGradlePath

if(project.hasProperty("appResourcesPath")){
    settingsGradlePath = "$project.appResourcesPath/Android/settings.gradle";
} else {
    settingsGradlePath = "$rootDir/../../app/App_Resources/Android/settings.gradle";
}

def settingsGradleFile = new File(settingsGradlePath);

if(settingsGradleFile.exists())
{
    apply from: settingsGradleFile;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章