对于buildToolsVersion '26 .0.2',在将Android Studio从2.3更新到3.0后,无法解析符号'?attr/actionBarSize'

Rah*_*han 120 android android-layout android-actionbar android-studio-3.0

将Android Studio从2.3更新到3.0后,我buildToolsVersion从26.0.0 更改为26.0.2,之后我收到此错误:

Cannot resolve symbol '?attr/actionBarSize
Run Code Online (Sandbox Code Playgroud)

Xml代码:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:titleTextColor="@android:color/white"/>
Run Code Online (Sandbox Code Playgroud)

依赖关系:

compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
Run Code Online (Sandbox Code Playgroud)

Vic*_*ova 241

没有任何帮助,但改变:

?attr/actionBarSize?android:attr/actionBarSize做的工作.

这实际上是几个版本中的错误.即使你不解决它,Android也会在运行时自动修复它.

  • 我认为`?android:attr/actionBarSize`只与api 21兼容,`?attr/actionBarSize`需要为Android Studio安装21之前的sdk才能看到它.对我来说另一个问题是确保compileSdk和支持库具有相同的主要版本号(在我的情况下为27) (20认同)
  • 嗯,看起来有点神奇,但它确实有效.我很想看到一个明确的解释,它准确描述了与各种sdks有什么区别以及什么有效以及为什么有效. (2认同)

Kun*_*put 35

将所有库版本更新为26.1.0(到最新版本)并添加:

compile 'com.android.support:support-v4:26.1.0'
Run Code Online (Sandbox Code Playgroud)

如果您使用的是Android Studio 3.0.0及更高版本,请使用

implementation 'com.android.support:support-v4:26.1.0'
Run Code Online (Sandbox Code Playgroud)

同步您的项目,错误将自动解决,因为它?attr/actionBarSizev4库的一部分.


小智 28

在项目目录层次结构中,将"Android"切换为"Project".然后删除文件夹".idea/libraries",只删除"库".从菜单"文件 - >使高速缓存/重新启动无效... - >无效并重新启动"中选择一个选项.

  • 这对我也有用.但好奇,为什么呢."无效缓存/重启"究竟是什么做的? (3认同)

小智 12

美好的一天,我知道这有点晚了.

但是当我更新到Android Studio 3.0时,我也遇到过这个

我做的是改变了

compile 'com.android.support:support-v4:26.1.0'
Run Code Online (Sandbox Code Playgroud)

implementation 'com.android.support:support-v4:26.1.0'
Run Code Online (Sandbox Code Playgroud)

希望它可以帮助某人.


小智 5

这就是我为解决完全相同的问题所做的工作.1.转到SDK管理器.2.检查Android API 27和Android 8.0(Oreo)3.单击"Apply"下载并安装这些SDK 4.在build.gradle中,将"buildToolsVersion"26.0.1""更改为"buildToolsVersion"26.0.2"'并做一个gradle同步.

希望这有助于解决您的问题.