[英]Android resource not found exception. Specify a resource by string
package com.example.tictactoe3d;
import min3d.core.Object3dContainer;
import min3d.core.RendererActivity;
import min3d.parser.IParser;
import min3d.parser.Parser;
import min3d.vos.Light;
public class MainActivity extends RendererActivity {
private Object3dContainer objModel;
@Override
public void initScene() {
scene.lights().add(new Light());
IParser parser = Parser.createParser(Parser.Type.OBJ,getResources(), "res/raw/camaro_obj" , true);
parser.parse();
objModel = parser.getParsedObject();
//objModel.scale().x = objModel.scale().y = objModel.scale().z = .7f;
scene.addChild(objModel);
}
@Override
public void updateScene() {
//objModel.rotation().x++;
//objModel.rotation().z++;
scene.camera().position.setAll(0,0,5);
}
}
我在Eclipse ADT的日志中遇到了找不到资源的异常。 我正在使用的min3d库要求使用字符串访问资源。 我可以使用具有自动完成功能的R.raw.camaro_obj访问资源,但是min3d库希望使用字符串来访问相同的资源。 我努力了:
"com.example.tictactoe3d:raw/camaro_obj"
"res/raw/camaro_obj"
"raw/camaro_obj"
是否可以通过某种方式通过字符串访问资源“ res / raw / camaro_obj”?
谢谢...
min3d示例项目中的调用如下所示:
IParser parser = Parser.createParser(Parser.Type.OBJ,getResources(), "min3d.sampleProject1:raw/test2_obj" , true);
该行实际调用的代码正在执行此操作:
public AParser(Resources resources, String resourceID, Boolean generateMipMap)
{
this();
this.resources = resources;
this.resourceID = resourceID;
if (resourceID.indexOf(":") > -1)
this.packageID = resourceID.split(":")[0];
this.generateMipMap = generateMipMap;
}
通常,您不使用字符串,而是通过id访问它们。 R.raw.camaro_obj将是一个int,您可以通过调用getResources().openRawResources(R.raw.camaro_obj);
来获得输入流getResources().openRawResources(R.raw.camaro_obj);
编辑:
我做了一些谷歌搜索,这http://androidbook.blogspot.com/2009/08/referring-to-android-resources-using.html可能会有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.