setContentView表示未找到源

时间:2011-12-22 02:43:55

标签: android layout view opengl-es glsurfaceview

我正在尝试使用带有一些文本的自定义GLSurfaceView,以显示游戏中的分数。我已经在这里发布了一些统一的xml布局,但是当我尝试使用setContentView加载它时,应用程序崩溃了。调试后我发现它说“找不到来源”。我重建了R文件,但这没有帮助。作为参考,扩展GLSurfaceView的类称为GLView。任何帮助将不胜感激。

 package org.kizik.WLTBO;


    import android.app.Activity;
    import android.os.Bundle;




    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.FrameLayout;
    import android.widget.LinearLayout;
    import android.widget.RelativeLayout;
    import android.widget.TextView;


    public class WholettheballoutActivity extends Activity {
       GLView view;



       @Override
       public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.score);
          view = (GLView) findViewById(R.id.mySurfaceView);

       // You can use a FrameLayout to hold the surface view
          /*FrameLayout frameLayout = new FrameLayout(this);
          frameLayout.addView(view);

          // Then create a layout to hold everything, for example a RelativeLayout
          RelativeLayout relativeLayout= new RelativeLayout(this);
          relativeLayout.addView(frameLayout);
          relativeLayout.addView(score);
          setContentView(relativeLayout);*/
       }

       @Override
       protected void onPause() {
           super.onPause();
           view.onPause();
       }

       @Override
       protected void onResume() {
           super.onResume();
           view.onResume();
       }
    }

使用XML文件名score.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

    <TextView android:id="@+id/textView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

    <org.kizik.WLTBO.GLView
        android:id="@+id/mySurfaceView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>        

</LinearLayout>

2 个答案:

答案 0 :(得分:3)

如果您使用单个参数GLView(Context c)创建了一个构造函数,可能会发生这种情况,您需要创建另一个像GLView(Context c,AttributeSet attrs)这样的构造函数,所以如果你没有创建那个构造函数,那么就不能没有从类中找到GLView,因为它的构造函数没有被创建.. !!我认为你还没有创建那个构造函数.. !!

 public GLview(Context context, AttributeSet attrs){

   super(context,attrs); }

答案 1 :(得分:0)

问题出在自定义视图的XML声明中,它应该是这样的:

 <org.kizik.WLTBO.GLView [other attributes]/>