【发布时间】:2018-10-21 03:26:07
【问题描述】:
build.gradle(模块:app)
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'
}
好吧,我想我知道是什么导致了错误,如果您查看依赖项,就会发现两个冗余包具有不同的名称
com.android.support.constraint:constraint-layout:1.1.0 androidx.constraintlayout:constraintlayout:1.1.0
但我无法删除它们中的任何一个,因为它们被某些软件包使用。我是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;
提前致谢。
【问题讨论】:
-
我不明白你为什么不能删除它们中的任何一个?它们本质上是相同的,只是谷歌开始将代码移动到不同的地方“androidx”,并将开始采用它作为更新支持库(以及其他组件)的唯一地方。
-
删除其中一个并调整代码中的引用。
-
移除 androidx.constraintlayout:constraintlayout:1.1.0
-
目前无法在android p上使用编辑器进行约束布局?
标签: android android-studio gradle build.gradle