public static Bitmap bmp;
bmp = BitmapFactory.decodeResource(this.getResources(), R.drawable.nehe);
上述代码的错误“令牌上的语法错误”;“,预期”我已经在bmp
之后放了一个分号但是仍然发生错误
这是完整的代码:
public class CustomActivity extends AndARActivity {
ARToolkit artoolkit;
CustomObject someObject;
CustomObject1 someObject1;
public static Bitmap bmp = BitmapFactory.decodeResource(this.getResources(), R.drawable.nehe);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CustomRenderer renderer = new CustomRenderer();
super.setNonARRenderer(renderer);
try {
//register a object for each marker type
artoolkit = super.getArtoolkit();
someObject = new CustomObject
("test", "androidpirate.patt", 80.0, new double[]{0,0});
artoolkit.registerARObject(someObject);
someObject = new CustomObject
("test", "andson.patt", 80.0, new double[]{0,0});
artoolkit.registerARObject(someObject);
someObject1 = new CustomObject1("test","andrev.patt", 80.0, new double[]{0,0});
artoolkit.registerARObject(someObject1);
someObject1 = new CustomObject1("test","androidpat.patt", 80.0, new double[]{0,0});
artoolkit.registerARObject(someObject1);
} catch (AndARException ex){
//handle the exception, that means: show the user what happened
System.out.println("");
}
startPreview();
}
@Override
public void uncaughtException(Thread thread, Throwable ex) {
Log.e("AndAR EXCEPTION", ex.getMessage());
finish();
}
}
答案 0 :(得分:1)
public
声明只能用于类变量而不能用于函数变量
答案 1 :(得分:1)
您在静态上下文中调用“this”,“this”指的是类实例对象,因此以静态方式使用它不是有效的Java语法。另外,我不认为“this.getResources()”会返回null,直到调用onCreate(Bundle)方法为止。
您应该执行以下操作:
public static Bitmap bmp;
public void onCreate(Bundle savedInstanceState) {
if(bmp!=null) {
BitmapFactory.decodeResource(this.getResources(), R.drawable.nehe);
}
...other code here
答案 2 :(得分:0)
public static Bitmap bmp =
BitmapFactory.decodeResource(this.getResources(), R.drawable.nehe);
或
public static Bitmap bmp;
static {
bmp = BitmapFactory.decodeResource(this.getResources(), R.drawable.nehe);
}
答案 3 :(得分:0)
如果您在方法中编写这些语句,则public
不是局部变量的有效访问修饰符。
如果您在类中的方法之外编写这些语句,则应将这些语句组合如下:
public Bitmap bmp =
BitmapFactory.decodeResource(this.getResources(), R.drawable.nehe);
这是因为,只允许在方法或块之外使用初始值设定项,而不是像第二个语句那样使用赋值语句。
由于您似乎依赖于getResources()
成员方法的返回值,因此bmp不能是静态的。此外,只有在确定getResources()
方法的返回值有意义时才最好初始化bmp。你应该从你的课程中显示更多代码,以获得更好的帮助。