【发布时间】:2018-12-21 15:49:17
【问题描述】:
我正在使用 Flutter 测试特定于平台的编码。我在 Android Studio 中打开了 android 文件夹,编写了我的代码,它没有显示任何错误。然后我回到了 Flutter,它在下面的代码中用红色下划线了 Rs。但是,该应用程序运行良好。我想知道为什么会显示错误以及如何删除这些红线。不胜感激。
这是我的代码:
public class MyTileService extends TileService {
private final int STATE_ON = 1;
private final int STATE_OFF = 0;
private int toggleState = STATE_ON;
@Override
public void onTileAdded() {
System.out.println("onTileAdded");
}
@Override
public void onTileRemoved() {
System.out.println("onTileRemoved");
}
@Override
public void onStartListening() {
System.out.println("onStartListening");
}
@Override
public void onStopListening() {
System.out.println("onStopListening");
}
@Override
public void onClick() {
System.out.println("onClick state = " + Integer.toString(getQsTile().getState()));
Icon icon;
if (toggleState == STATE_ON) {
toggleState = STATE_OFF;
icon = Icon.createWithResource(getApplicationContext(), R.drawable.ic_spa_black_24dp);
System.out.println("OFF");
} else {
toggleState = STATE_ON;
icon = Icon.createWithResource(getApplicationContext(), R.drawable.ic_star_border_black_24dp);
System.out.println("ON");
}
getQsTile().setIcon(icon);
getQsTile().updateTile();
}
}
我尝试清理 android 项目,卸载并重新安装 Flutter 和 Dart 插件,检查 Flutter Doctor。
这是一张图片:
【问题讨论】:
-
通常红色下划线的 Rs 是由于 XML 布局无效而导致的 lint 错误。您是否对
./android项目中的某些布局进行了一些更改? -
不,实际上那里没有 Layout 文件夹。我只将服务添加到清单并添加了我的可绘制对象。
-
对不起,但是。你是在flutter项目里面打开java代码,而不是用AS打开./android里面的android项目?不是吗?我猜这是问题所在。如果您使用 AS 打开 android 项目,则没有红色的 Rs。对吗?
-
在这种情况下,java代码中的lint仍然存在这个问题。我有相同的 R.
.resource_id -
不,我在 AS 中打开/编辑项目时没有问题。只是它在 Flutter 中显示为红色。请看截图。谢谢!