web-dev-qa-db-ja.com

既に存在するプログラムの種類:Android.support.constraint.BuildConfig

build.gradle(モジュール:アプリ)

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 'Android-P'
    buildToolsVersion '27.0.3'
    defaultConfig {
        multiDexEnabled true
        applicationId "tk.megh.myapplication"
        minSdkVersion 'P'
        targetSdkVersion 'P'
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
    dexOptions {
        preDexLibraries = false
    }
}



dependencies {
    implementation 'com.Android.support:multidex:1.0.1'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.Android.support.constraint:constraint-layout:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.0'
    androidTestImplementation('com.Android.support.test.espresso:espresso-core:3.0.2', {
        exclude group: 'com.Android.support', module: 'support-annotations'
    })
    implementation 'com.Android.support:appcompat-v7:+'
    testImplementation 'junit:junit:4.12'

}

私はエラーの原因を知っていると思います、依存関係を見ると、異なる名前の2つの冗長パッケージがあります

com.Android.support.constraint:constraint-layout:1.1.0 androidx.constraintlayout:constraintlayout:1.1.

ただし、一部のパッケージで使用されているため、どちらも削除できません。私はAndroid開発の初心者なので、回避策についてはあまり知りません。

私が削除した場合

implementation 'com.Android.support.constraint:constraint-layout:1.1.0'

デバッグ中にこのエラーが発生します:

    Java.lang.RuntimeException: Unable to start activity 
ComponentInfo{tk.megh.myapplication/tk.megh.myapplication.MainActivity}: 
Android.view.InflateException: Binary XML file line #2: Binary XML file 
line #2: Error inflating class Android.support.constraint.ConstraintLayout

そして、私が削除した場合

implementation 'androidx.constraintlayout:constraintlayout:1.1.0'

デバッグ中に次のエラーが表示されます。

 Java.lang.RuntimeException: Unable to start activity 
ComponentInfo{tk.megh.myapplication/tk.megh.myapplication.DisplayMessageActivity}: 
Android.view.InflateException: Binary XML file line #2: Binary XML file line #2: 
Error inflating class androidx.constraintlayout.widget.ConstraintLayout

追加の詳細:

MainActivity.Javaのインポート:

import Android.content.Intent;
import Android.os.Bundle;
import Android.support.v7.app.AppCompatActivity;
import Android.view.View;
import Android.widget.EditText;

DisplayMessageActivity.Javaのインポート:

import Android.content.Intent;
import Android.os.Bundle;
import Android.support.v7.app.AppCompatActivity;
import Android.widget.TextView;   

前もって感謝します。

12

エラーは、レイアウトConstraintLayoutファイルでxmlを使用していることを示しています。

ライブラリの1つのバージョンのみを保持し、XMLでそのバージョンのConstraintLayoutを使用していることを確認してください。

したがって、androidxを保持する場合は、レイアウトファイルを確認し、androidx.constraintlayout.ConstraintLayoutを使用していること、およびnotAndroid.support.constraint.ConstraintLayoutを使用していることを確認してください。

31
Ridcully

com.Android.support.constraint:constraint-layoutandroidx.constraintlayout:constraintlayoutを同時に参照しないように注意してください。一方(できればandroidx)で解決し、もう一方を削除して、レイアウトファイルでもパッケージ名が一致していることを確認します。これで問題は解決しました。

1

私も同じ問題を抱えていました。私はAndroid.Arch.coreライブラリに2つの異なるバージョンを使用していました。したがって、それらのバージョンを修正することは助けになりました。アプリケーション全体で1つのバージョンを使用してみてください。

ありがとう

0
Anu Bhalla