在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文件。
答案 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包装器)版本。