迁移到 Androidx 后无法解析符号 R

Posted

技术标签:

【中文标题】迁移到 Androidx 后无法解析符号 R【英文标题】:Could not Resolve Symbol R After Migrating to Androidx 【发布时间】:2019-08-24 17:31:26 【问题描述】:

迁移到 androidx 后,我的项目开始显示红色下划线错误,表示无法解析 R。

    我已经尝试用谷歌搜索一些类似的问题,但仍然出现错误 留下来, 我检查了我的清单,我的 Res 文件夹是否有错误 我没有验证/重启项目 我有清理和重建项目 我已与 android 项目同步 gradle

在我完成这些之后,错误仍然存​​在

dependencies 
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.recyclerview:recyclerview:1.0.0'
//    implementation 'com.google.android.material:material:1.0.0-rc01'
    implementation 'com.google.android.material:material:1.1.0-alpha05'
    implementation 'androidx.multidex:multidex:2.0.1'
    implementation 'androidx.appcompat:appcompat:1.0.2'

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'


    implementation 'com.github.maxyou:CalendarPicker:v1.1.2'

//    Ramotion
    implementation 'com.ramotion.paperonboarding:paper-onboarding:1.1.3'
    implementation 'com.ramotion.foldingcell:folding-cell:1.2.3'
    implementation 'com.ramotion.garlandview:garland-view:0.3.3'

MyApplication.java

package xyz.esusku.nearbyworker;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity 

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
```

【问题讨论】:

我什至创建了一个新项目,但问题仍然存在 我刚刚导入项目,但仍然存在错误 您的一个(或多个)布局仍然引用 xml 中较旧的 AppCompat 依赖项。这就是 R 文件生成失败的原因。 @Zionnite 您使用什么 IDE 版本?试试最新的 IntelliJ IDEA 和 RC 的 AS。 寻找明显的东西,例如 android.support.design.widget.BottomNavigationView 已更改为 com.google.android.material.bottomnavigation.BottomNavigationView。布局中的任何完全限定名称。 【参考方案1】:

希望您在尝试迁移现有项目时已在 gradle.properties 文件中添加这些行:

android.useAndroidX=true
android.enableJetifier=true

还有一件事尝试删除重复的导入-

import android.support.v7.app.AppCompatActivity; //remove this line
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

【讨论】:

我确实做到了,但错误仍然存​​在 我试过import android.R它通过消除错误来工作,但它没有打开布局文件夹【参考方案2】:

详情请见https://twitter.com/tasomaniac/status/1103020923874131968。

Gradle Android Plugin 3.3+ 不再生成 R 源文件。您要么需要更新到支持资源的新二进制格式的 IDE,要么将插件降级到 build.gradle 中的旧版本。

【讨论】:

以上是关于迁移到 Androidx 后无法解析符号 R的主要内容,如果未能解决你的问题,请参考以下文章

无法在 androidx 中解析符号“BottomNavigationItemView”

迁移到 AndroidX 时无法解析变量“$animal.sniffer.version”

在迁移到 viewpager2 androidx 时发现此错误“无法解析方法 'super(androidx.fragment.app.FragmentManager)'”

迁移到AndroidX后:无法实例化类:androidx.appcompat.widget.ShareActionProvider。

无法将 Flutter 项目迁移到 AndroidX

更改 Min Sdk 版本后“无法解析符号 'R'”? [复制]