【问题标题】:How to add dependencies?如何添加依赖?
【发布时间】:2020-10-29 17:01:24
【问题描述】:

我使用的是 Android Studio 4.0 版

在项目级 gradle 中:

def supportVersion = "27.1.0"
ext.deps = [
    supportAppCompat   : "com.android.support:appcompat-v7:$supportVersion",
    supportDesign      : "com.android.support:design:$supportVersion",
 
]

模块级分级:

dependencies {    
implementation deps.supportAppCompat
implementation deps.supportDesign
}

当我导入它时会发生错误

当我导入这个时

import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;

xml 中的错误

error pic

在xml中添加这个标签时会发生错误

<android.support.design.widget.CoordinatorLayout/>
<android.support.design.widget.AppBarLayout/>
<android.support.v7.widget.Toolbar />
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.FloatingActionButton />

给个解决办法!!!

【问题讨论】:

    标签: android gradle


    【解决方案1】:

    截至 Google 官方文档 (https://developer.android.com/topic/libraries/support-library/packages)

    注意:随着支持库 28.0.0 的发布,android.support-packaged 库已被弃用,取而代之的是打包为 androidx 的单独版本的 Jetpack 库。 Jetpack 库的初始 1.0.0 版本提供与支持库 28.0.0 的对等,并为迁移到新的 androidx 打包提供了起点。

    修复错误:

    "com.android.support:appcompat-v7:$supportVersion"
    "com.android.support:design:$supportVersion"
    

    def supportVersion = "1.0.0"
    ext.deps = [
        supportAppCompat   : "androidx.appcompat:appcompat:$supportVersion",
        supportDesign      : "com.google.android.material:material:$supportVersion",
    ]
    

    之后重新启动 Android Studio 或刷新缓存数据为 - enter image description here

    有关此线程的更多信息:Cannot resolve symbol AppCompatActivity - Support v7 libraries aren't recognized?

    用于强制 android studio 使用旧库

    我检查你使用的是 27.1.0,所以我们可以强制 android studio 不使用 androidx

    • 转到 gradle.properties

    • 使这些标志为假

      android.useAndroidX=false

      android.enableJetifier=false

    【讨论】:

    • @Poorvaja 如果您使用的是 androidx 库,请确保使用以下内容 - androidx.coordinatorlayout.widget.CoordinatorLayout ,确保刷新 android studio 缓存
    【解决方案2】:

    您可以将 supportAppCompat 迁移到 AndroidX 库。

    在菜单中选择 Refactor -> Migrate to AndroidX。然后你应该在你的类中重新导入 androidx。

    【讨论】:

      【解决方案3】:

      当你使用 android studio 4.0

      使用 androidX 库而不是 Support Library...因为最新版本使用 androidx

          dependencies {
          implementation fileTree(dir: 'libs', include: ['*.jar'])
          androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0-alpha3', {
              exclude group: 'com.android.support', module: 'support-annotations'
          })
          implementation 'androidx.appcompat:appcompat:1.0.0'
          implementation 'com.android.support.constraint:constraint-layout:1.1.3'
          implementation 'androidx.legacy:legacy-support-v4:1.0.0'
          implementation 'com.google.android.material:material:1.0.0'
          testImplementation 'junit:junit:4.12'
      }
      

      【讨论】:

      • 在我在回答中给出的 build.gradle 中添加依赖项,然后立即同步..然后相应地在类和 xml 中导入
      • 使用这个xml标签androidx.coordinatorlayout.widget.CoordinatorLayout而不是&lt;android.support.design.widget.CoordinatorLayout/&gt;使用和导入androidx标签
      猜你喜欢
      • 2016-10-23
      • 2017-05-21
      • 2014-11-27
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 1970-01-01
      • 2017-03-24
      • 2015-03-31
      相关资源
      最近更新 更多