Android 工作室在构建项目时出现 R 错误
Android studio giving R error while building project
在我的项目中,我使用位图来添加背景图像。当我使用第二个位图时,我的代码运行良好。一旦我膨胀第二个位图项目,在构建时就开始出现 R 错误。
下面是我的代码:
@Override
public void surfaceCreated(SurfaceHolder holder) {
bg = new Background(BitmapFactory.decodeResource(getResources(), R.drawable.imageOne));
newbg = new AnotherClass(BitmapFactory.decodeResource(getResources(), R.drawable.imageTwo));
// thread.setRunning(true);
// thread.start();
}
我尝试过的事情:
- 已从 Build Clean 和终端中清理项目。
- 重建项目。
- 使用无效缓存重新启动。
Broken pipe
java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
at sun.nio.ch.IOUtil.write(IOUtil.java:65)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
at com.android.ddmlib.JdwpPacket.write(JdwpPacket.java:179)
at com.android.ddmlib.Client.send(Client.java:654)
at com.android.ddmlib.jdwp.JdwpAgent.send(JdwpAgent.java:92)
at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:349)
at com.android.ddmlib.Client.requestAllocationStatus(Client.java:517)
at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:573)
at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:545)
at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:361)
at com.android.ddmlib.DeviceMonitor.access0(DeviceMonitor.java:65)
at com.android.ddmlib.DeviceMonitor.run(DeviceMon...
如果您使用的是 Android Studio,请尝试 Build->Clean Project
然后 Build->Rebuild Project
你应该关闭你的 Android 工作室或 eclipse 无论你正在使用什么。如果没有解决您的错误,请执行 adb kill-server && sleep 5 && adb devices
然后再次启动您的工具 (Eclipse/Ant/AS)。
正如您提到的,在您添加第二个之前,您的代码工作正常,所以问题在于您的第二个位图。
如果您使用的是手动转换的图像,则可能会发生这种情况,例如:image.jpg 转换为 image.png。
解决方案:将图片名称重构为原来的名称,然后使用 it.If 你想转换它,然后使用图片扩展名更改工具(网上有很多。),然后在你的位图。
希望它能奏效。 :)
在我的项目中,我使用位图来添加背景图像。当我使用第二个位图时,我的代码运行良好。一旦我膨胀第二个位图项目,在构建时就开始出现 R 错误。 下面是我的代码:
@Override
public void surfaceCreated(SurfaceHolder holder) {
bg = new Background(BitmapFactory.decodeResource(getResources(), R.drawable.imageOne));
newbg = new AnotherClass(BitmapFactory.decodeResource(getResources(), R.drawable.imageTwo));
// thread.setRunning(true);
// thread.start();
}
我尝试过的事情:
- 已从 Build Clean 和终端中清理项目。
- 重建项目。
- 使用无效缓存重新启动。
Broken pipe java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcherImpl.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) at sun.nio.ch.IOUtil.write(IOUtil.java:65) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) at com.android.ddmlib.JdwpPacket.write(JdwpPacket.java:179) at com.android.ddmlib.Client.send(Client.java:654) at com.android.ddmlib.jdwp.JdwpAgent.send(JdwpAgent.java:92) at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:349) at com.android.ddmlib.Client.requestAllocationStatus(Client.java:517) at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:573) at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:545) at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:361) at com.android.ddmlib.DeviceMonitor.access0(DeviceMonitor.java:65) at com.android.ddmlib.DeviceMonitor.run(DeviceMon...
如果您使用的是 Android Studio,请尝试 Build->Clean Project
然后 Build->Rebuild Project
你应该关闭你的 Android 工作室或 eclipse 无论你正在使用什么。如果没有解决您的错误,请执行 adb kill-server && sleep 5 && adb devices
然后再次启动您的工具 (Eclipse/Ant/AS)。
正如您提到的,在您添加第二个之前,您的代码工作正常,所以问题在于您的第二个位图。
如果您使用的是手动转换的图像,则可能会发生这种情况,例如:image.jpg 转换为 image.png。
解决方案:将图片名称重构为原来的名称,然后使用 it.If 你想转换它,然后使用图片扩展名更改工具(网上有很多。),然后在你的位图。
希望它能奏效。 :)