web-dev-qa-db-ja.com

Androidリソースリンクに失敗 - AAPT:エラー:リソースAndroid:attr / DialogCornerRadius)見つかりません

React-NativeプロジェクトのAndroidリリースをバンドルしようとしているときにエラーを受け取ります。このプロジェクトは、ノートとしてAndroidXに変換する必要があります。

エラーメッセージ

Androidのリリースビルドを作成しようとすると、次のエラーが表示されます。

_    * What went wrong:
Execution failed for task ':react-native-vector-icons:verifyReleaseResources'.
> A failure occurred while executing com.Android.build.gradle.internal.tasks.Workers$ActionFacade
   > 1 exception was raised by workers:
     com.Android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
     /Users/.../.gradle/caches/transforms-2/files-2.1/5c74eb36d229b35abeeb690f5d3b91a3/appcompat-1.0.0/res/values-v28/values-v28.xml:5:5-8:13: AAPT: error: resource Android:attr/dialogCornerRadius not found.

     /Users/.../.gradle/caches/transforms-2/files-2.1/5c74eb36d229b35abeeb690f5d3b91a3/appcompat-1.0.0/res/values-v28/values-v28.xml:9:5-12:13: AAPT: error: resource Android:attr/dialogCornerRadius not found.

     /Users/.../.gradle/caches/transforms-2/files-2.1/f54ae08833e39bf2b75fd420ffea65b9/core-1.0.0/res/values/values.xml:57:5-88:25: AAPT: error: resource Android:attr/fontVariationSettings not found.

     /Users/.../.gradle/caches/transforms-2/files-2.1/f54ae08833e39bf2b75fd420ffea65b9/core-1.0.0/res/values/values.xml:57:5-88:25: AAPT: error: resource Android:attr/ttcIndex not found.
_

Root Build.Gradleファイル

_buildscript {
  ext {
    buildToolsVersion = "28.0.3"
    minSdkVersion = 16
    compileSdkVersion = 28
    targetSdkVersion = 28
    supportLibVersion = "28.0.0-alpha1"
    reactNativeVersion = "0.59.9"
  }
    repositories {
        jcenter()
         google()
        maven {
          url 'https://maven.google.com/'
          name 'Google'
        }
    }
    dependencies {
        classpath('com.Android.tools.build:gradle:3.6.3')
        classpath 'com.google.gms:google-services:4.2.0'

        // Add the Crashlytics Gradle plugin.
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.1.1'
    }
}

allprojects {
    repositories {
        google()
        mavenLocal()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url  "$rootDir/../node_modules/react-native/Android"
        }
        // React native video - exoplayer missing from google repos, temp fix
        maven {
          url "https://google.bintray.com/exoplayer/"
        }
        jcenter()
    }
}

ext {
    buildToolsVersion = "28.0.3"
    minSdkVersion = 16
    compileSdkVersion = 28
    targetSdkVersion = 28
    supportLibVersion = "28.0.0-alpha1"
    reactNativeVersion = "0.59.9"
  }

subprojects {
  afterEvaluate {project ->
    if (project.hasProperty("Android")) {
      Android {
        compileSdkVersion compileSdkVersion
        buildToolsVersion "$buildToolsVersion"
      }
    }
  }
}
_

App Build.Gradleファイル

依存関係

_dependencies {
    implementation project(':react-native-safe-area-context')
  implementation 'com.Android.support:support-annotations:28.0.3'
  implementation "androidx.annotation:annotation:1.1.0"
  implementation project(':react-native-video')
    implementation(project(":react-native-google-signin"))
  implementation project(':react-native-splash-screen')
  implementation project(':react-native-iap')
  implementation project(':react-native-version-check')
  implementation project(':react-native-vector-icons')
  implementation project(':react-native-linear-gradient')
  implementation(project(':react-native-firebase')) {
        transitive = false
    }
  implementation project(':react-native-fbsdk')
  implementation project(':react-native-linear-gradient')
  implementation project(':react-native-vector-icons')
  implementation project(':react-native-fbsdk')
  implementation project(':react-native-vector-icons')
    // react-native-google-signin

    // react-native-fbsdk
  implementation 'com.facebook.Android:facebook-Android-sdk:4.33.0'
  implementation project(':react-native-fbsdk')

    // RNFirebase required dependencies
    implementation "com.google.firebase:firebase-core:16.0.9"
    implementation "com.google.Android.gms:play-services-base:17.0.0"

    // RNFirebase optional dependencies
    implementation "com.google.firebase:firebase-auth:17.0.0"
    implementation "com.google.firebase:firebase-database:16.0.5"
    implementation "com.google.firebase:firebase-firestore:17.1.4"

    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation ("com.facebook.react:react-native:0.59.9") {force = true}  // From node_modules

    implementation 'com.google.firebase:firebase-crashlytics:17.0.1'
}
_

リサーチ

このような報告のいくつかの問題が報告されているのを見ました。
[。] React-Native(Android)AAPT:エラー:リソースAndroid:attr/dialogCornerRadiusが見つかりません
[。] https://fincoapps.com/error-resource-androidattr-DialogCornerRadius-not-found/

ただし、あなたが期待するように設定されるようになります。 1つの問題は、root build.gradleファイルに存在するサブプロジェクト編集を示唆していますが、同じエラーメッセージが常に発生します。

編集

gradle-wrapper.properties.

_#Thu May 07 14:26:41 BST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
Android.enableJetifier=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.Zip
Android.useAndroidX=true
_

反応した情報

_npmPackages:
  react: ^16.7.0 => 16.13.1 
  react-native: 0.59.9 => 0.59.9 
npmGlobalPackages:
  react-native-cli: 2.0.1
_
8
StuartM

解決策1:

  1. すべての反応先プロジェクトがAndroidXをサポートしているものを確認してください。
_gradlew app:dependencies
_

出力のAndroidxを検索します。 AndroidXを持つすべてのライブラリを取得します。

  1. _build.gradle_内部のAndroid/Appを変更してください。
_configurations.all {
    resolutionStrategy { 
        force 'com.google.Android.gms:play-services-gcm:16.1.0'
        force 'com.google.Android.gms:play-services-basement:16.2.0'
        force 'com.google.Android.gms:play-services-auth:16.0.1'
        force 'com.google.firebase:firebase-messaging:18.0.0'
        force 'com.google.firebase:firebase-common:17.0.0'        
        force 'com.google.firebase:firebase-iid:18.0.0'
        force 'com.google.Android.gms:play-services-stats:16.0.1'
        force 'com.google.Android.gms:play-services-base:16.0.1'
    }
}
_

これらは、私の反応ネイティブプロジェクトで問題を引き起こしたライブラリでした。 Googleはここですべてのリリースを維持しています https://developers.google.com/android/guides/release#may_07_2019 。他のバージョンも選択できます。この解決策は私の場合の問題を解決しました。これが役立つかどうか私に知らせてください。

解決策2.

_rm -rf Android/.gradle
rm -rf .gradle
rm -rf ~/.gradle
./gradlew clean
_
1
Muhammad Numan