如何修复Duplicate类android.support.design.widget.CoordinatorLayout?

时间:2019-06-02 15:35:01

标签: java android

我正在尝试为android应用制作文件选择器,但没有看到任何问题,但是当我运行它时,我得到了:

Duplicate class android.support.design.widget.CoordinatorLayout found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:25.3.1)

我已尝试再次同步Gardle,但无法正常工作

在Gardle文件项目中,我添加了以下内容:

maven {
            url  "http://dl.bintray.com/lukaville/maven"
        }

在Gardle文件模块中,我添加了以下内容:

compile 'com.nbsp:library:1.8'

并使用此库,我将其添加到MainActivity.java中:

button =(Button)findViewById(R.id.button);         textView =(TextView)findViewById(R.id.textView);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new MaterialFilePicker()
                    .withActivity(MainActivity.this)
                    .withRequestCode(1000)
                    .withFilter(Pattern.compile(".*\\.txt$")) 
                    .withFilterDirectories(true)  
                    .withHiddenFiles(true) 
                    .start();
        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 1 && resultCode == RESULT_OK) {
        String filePath = data.getStringExtra(FilePickerActivity.RESULT_FILE_PATH);
        textView.setText(filePath);
    }

我没有收到任何语法错误,但是运行时,我在logcat中收到一条错误消息::app:checkDebugDuplicateClasses

Duplicate class android.support.design.widget.CoordinatorLayout found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:25.3.1)

以及其他类似的东西。

2 个答案:

答案 0 :(得分:1)

我发现更新android支持设计库可以解决此问题。只需在您应用的Gradle文件中实现此类:com.android.support:design:28.0.0 似乎出现问题是因为Android Studio提到的两个不同版本的支持库中有两个相互冲突的CoordinatorLayout版本。

我希望这对某人有帮助。

答案 1 :(得分:0)

发生此问题是因为lib已过期。很久没有更新了。

MaterialFilePicker项目的

this is gradle。您可以看到,无论Android Studio怎么说对。

解决方案:

  1. 降低依赖库的版本
  2. 或在github上公开解决问题,这几乎是不可能的
  3. 或者获取源代码并使用更新的库重新编译

了解发生的原因。由于这是正常的Android支持库,因此它们的版本应该相同。这就是jetpack引入AndroidX的原因之一。