2014-09-17 7 views
0

Я пытаюсь поместить GLSurfaceView в макет xml, но когда я пытаюсь это сделать, мое приложение автоматически закрывается. Я думаю, проблема в макете/activity_main.xml, потому что я не знаю имя тега для glsurgaceview. Это мой код. Не могли бы вы рассказать мне, что не так с моим кодом. Спасибо за вашу помощь.Как раздуть glsurfaceview в макете android xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".AnimationActivity"> 

    <TextView 
     android:id="@+id/angolo" 
     android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="135dp" 
     android:text="Angolo:" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <view 
     class="rugani.tesi.animazione3d.AnimationActivity$MyGLSurfaceView" 
     android:id="@+id/myglsurfaceView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 

</RelativeLayout> 

Это myglsurfaceview:

protected void onCreate(Bundle savedInstanceState) { 

    Logger.log("onCreate"); 

    super.onCreate(savedInstanceState); 
    getActionBar().setDisplayHomeAsUpEnabled(true); 


    /* 
    mGLView = new GLSurfaceView(getApplication()); 
    mGLView.setEGLContextClientVersion(2); 
    mGLView.setEGLConfigChooser(new AAConfigChooser(mGLView)); 
    mGLView.setRenderer(renderer); 
    setContentView(mGLView); 
    */ 
    //mGLView = new MyGLSurfaceView(getApplication()); 
    //setContentView(mGLView); 

    setContentView(R.layout.activity_main); 
    mGLView = (MyGLSurfaceView) findViewById(R.id.graphics_glsurfaceview); 

    pluto=(MyApplication)this.getApplication(); 
    mBoundService=pluto.getObj(); 
} 

и это мой OnCreate()

private MyGLSurfaceView mGLView; 
private MyGLRenderer renderer; 
protected void onCreate(Bundle savedInstanceState) { 

    Logger.log("onCreate"); 

    super.onCreate(savedInstanceState); 
    getActionBar().setDisplayHomeAsUpEnabled(true); 


    /* 
    mGLView = new GLSurfaceView(getApplication()); 
    mGLView.setEGLContextClientVersion(2); 
    mGLView.setEGLConfigChooser(new AAConfigChooser(mGLView)); 
    mGLView.setRenderer(renderer); 
    setContentView(mGLView); 
    */ 
    //mGLView = new MyGLSurfaceView(getApplication()); 
    //setContentView(mGLView); 

    setContentView(R.layout.activity_main); 
    mGLView = (MyGLSurfaceView) findViewById(R.id.graphics_glsurfaceview); 

} 

это LogCat:

09-18 10:52: 17.665: E/ActivityThread (30263): не удалось раздуть 09-18 10 : 52: 17.665: E/ActivityThread (30263): android.view.InflateException: Бинарная строка XML-файла # 11: ошибка раздувания класса rugani.tesi.animazione3d.AnimationActivity.MyGLSurfaceView 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:708) 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.view.LayoutInflater.rInflate (LayoutInflater .java: 756) 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.view.LayoutInflater.inflate (LayoutInflater.java:492) 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.view.LayoutInflater.inflate (LayoutInflater.java:397) 09-18 10: 52: 17.665: E/Acti vityThread (30263): at android.view.LayoutInflater.inflate (LayoutInflater.java:353) 09-18 10: 52: 17.665: E/ActivityThread (30263): at com.android.internal.policy.impl. PhoneWindow.setContentView (PhoneWindow.java:344) 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.app.Activity.setContentView (Activity.java:2127) 09-18 10:52 : 17.665: E/ActivityThread (30263): at rugani.tesi.animazione3d.AnimationActivity.onCreate (AnimationActivity.java:73) 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.app .Activity.performCreate (Activity.java:6020) 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.app.Instrumentation.callActivityOnCreate (Inst rumentation.java:1087) 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2181) 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2276) 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.app.ActivityThread.access $ 800 (ActivityThread.java:144) 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1205) 09-18 10: 52: 17.665 : E/ActivityThread (30263): at android.os.Handler.dispatchMessage (Handler.java:102) 09-18 10: 52: 17.665: E/ActivityThread (30263): при android.os.Looper.loop (Looper.java:136) 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.app.ActivityThread.main (ActivityThread.java:5151) 09- 18 10: 52: 17.665: E/ActivityThread (30263): at java.lang.reflect.Method.invokeNative (родной метод) 09-18 10:52:17.665: E/ActivityThread (30263): at java.lang.reflect.Method.invoke (Method.java:515) 09-18 10: 52: 17.665: E/ActivityThread (30263): at com.android. internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:796) 09-18 10: 52: 17.665: E/ActivityThread (30263): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java : 612) 09-18 10: 52: 17.665: E/ActivityThread (30263): at dalvik.system.NativeStart.main (родной метод) 09-18 10: 52: 17.665: E/ActivityThread (30263): Вызвано: java.lang.ClassNotFoundException: Не нашел класс "rugani.tesi.animazione3d.AnimationActivity.MyGLSurfaceView" по пути: DexPathList [[zip-файл "/ d ata/app/rugani.tesi.animazione3d-1.apk "], nativeLibraryDirectories = [/ data/app-lib/rugani.tesi.animazione3d-1, /vendor/lib,/system/lib]] 09-18 10 : 52: 17,665: Е/ActivityThread (30263): в dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56) 09-18 10: 52: 17,665: Е/ActivityThread (30263): в Java. lang.ClassLoader.loadClass (ClassLoader.java:497) 09-18 10: 52: 17.665: E/ActivityThread (30263): at java.lang.ClassLoader.loadClass (ClassLoader.java:457) 09-18 10 : 52: 17.665: E/ActivityThread (30263): at android.view.LayoutInflater.createView (LayoutInflater.java:559) 09-18 10: 52: 17.665: E/ActivityThread (30263): at android.view .LayoutInflater.c reateViewFromTag (LayoutInflater.java:697) 09-18 10: 52: 17,665: E/ActivityThread (30263): ... 21 более

EDIT: Я обновил этот пост с новой компоновкой XML и с ошибка LogCat

+0

можете ли вы показать сообщение об ошибке от logcat? – fadden

+0

Я отредактировал первое сообщение, в том числе ошибку logcat и отредактированный xml-макет :) –

+0

Кажется, он не нашел класс - 'Не нашел класс 'rugani.tesi.animazione3d.AnimationActivity.MyGLSurfaceView". – fadden

ответ