2013-02-11 1 views
2

Я уже видел эту ошибку, но ни один из ответов не исправил мою проблему, поэтому я не совсем уверен, что происходит. Он не работает, когда он пытается раздуть мой класс в xml.ошибка раздувания класса, пользовательский вид

XML:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#EEE" 
    > 
    <android.view.SurfaceView 
     android:id="@+id/preview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     > 
    </android.view.SurfaceView> 
    <com.commonsware.android.picture.PictureDemo.DrawOnTop 
     android:id="@+id/grid" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     > 
    </com.commonsware.android.picture.PictureDemo.DrawOnTop> 
</FrameLayout> 

Класс:

class DrawOnTop extends View 
    { 

     public DrawOnTop(Context context) 
     { 
      super(context); 
     } 

     public DrawOnTop(Context context, AttributeSet attrs) 
     { 
      super(context, attrs); 
     } 

     public DrawOnTop(Context context, AttributeSet attrs, int defStyle) 
     { 
      super(context, attrs, defStyle); 

     } 

     @Override 
     protected void onDraw(Canvas canvas) 
     { 
      Paint paint = new Paint(); 
      paint.setStyle(Paint.Style.STROKE); 
      paint.setColor(Color.BLACK); 
      canvas.drawText("Test Text", 10, 10, paint); 
      canvas.drawBitmap(bitmap, 0, 0, null); 
      super.onDraw(canvas); 
     } 
    } 

Ошибка:

02-11 16:06:25.456: E/AndroidRuntime(11717): Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class com.commonsware.android.picture.PictureDemo.DrawOnTop 

У меня есть все конструкторы и не видят любую другую проблему, что мне не хватает?

+1

Что вы имеете в виду: «Это неудачно, когда он пытается раздуть мой класс в xml». можете ли вы опубликовать трассировку стека? – FoamyGuy

+0

Каково ваше имя пакета, действительно ли это пакет com.commonsware.android.picture.PictureDemo; '? – Sam

+0

@Sam пакет com.commonsware.android.picture (его серия примеров из github) Класс DrawOnTop определен в файле «PictureDemo». Я не был уверен, что это должно быть в xml или нет, но это делает не работает в любом случае – jgelderloos

ответ

3

Попробуйте отделить DrawOnTop до другого файла в одном пакете.

+9

Не могли бы вы объяснить, как это точно исправляет проблему? Я получаю аналогичную ошибку, и мой класс уже находится в собственном файле в том же пакете. –

+0

@SimonSarris Вы решили проблему? У меня такая же проблема. –

+0

Это исправляет проблему, потому что что-то не так с тем, как пакет выбирается для инфляции (через данный файл). Разделив это, вы убедитесь, что его в правильном пакете, потому что вы его создали, однако; кажется, что при импорте он не импортирует пакет правильно. – JoxTraex

Смежные вопросы