Androidx迁移后未解析的参考R

时间:2018-10-30 08:13:22

标签: android kotlin android-gradle androidx

在Gradle脚本中的build.gradle(模块:app)中更新了我的依赖关系之后,我所有的布局,字符串和所有由R定义的引用都不可用。我在“模块”应用中有以下代码:

import UIKit

class TableVC: UIViewController,UITableViewDelegate,UITableViewDataSource {

    @IBOutlet weak var tableView : UITableView!

   var arrayOfTitle : [titleOfArray] = [titleOfArray]()

   override func viewDidLoad() {
        super.viewDidLoad()

        if self.tableView != nil {
            self.tableView.delegate = self
            self.tableView.dataSource = self
        }

        for i in 0...20 {
            self.arrayOfTitle.append(titleOfArray(title: "Test\(i)", isSelectedIndex: false))
        }

        // Do any additional setup after loading the view.
    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

        return 80
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        return self.arrayOfTitle.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = self.tableView.dequeueReusableCell(withIdentifier: "cell")
        cell?.textLabel!.text = self.arrayOfTitle[indexPath.row].title
        cell?.textLabel!.textColor =  self.arrayOfTitle[indexPath.row].isSelectedIndex ? UIColor.red : UIColor.blue
        return cell!
    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        for i in 0...self.arrayOfTitle.count-1 {
            self.arrayOfTitle[i].isSelectedIndex = false
        }
        self.arrayOfTitle[indexPath.row].isSelectedIndex = true
        tableView.reloadData()
    }
}


class titleOfArray : NSObject {

    var title : String!
    var isSelectedIndex : Bool!

    init(title:String! ,isSelectedIndex :Bool) {

        self.title = title
        self.isSelectedIndex = isSelectedIndex
    }
}

在搜索项目时,通过项目资源管理器,该项目似乎不再具有R文件。

1 个答案:

答案 0 :(得分:8)

我在迁移到androidx后遇到了此类问题。经过一番努力,我发现问题出在我使用最新的Gradle插件(如下所示),而我的Android Studio版本不是最新的(3.2)。

com.android.tools.build:gradle:3.3.0

当我将gradle插件更改为较低版本(如下所示)时,一切正常。

com.android.tools.build:gradle:3.2.1

解决方案:

因此解决方案是使用与您的Android Studio版本匹配的Gradle插件(和Gradle包装器)版本。