2015-07-16 3 views
0

Я новичок в android.NullPointerException при рендеринге дизайнера от XML

Я изменил конструктор из XML и теперь он показывает исключение. Я просто хотел иметь таблицу ширины 3х5, но я не знаю, почему она показала мне исключение.

Пожалуйста, помогите мне решить эту проблему.

Здесь ошибка:

java.lang.NullPointerException 
at android.widget.LinearLayout.forceUniformHeight(LinearLayout.java:1380) 
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1368) 
at android.widget.TableRow.onMeasure(TableRow.java:114) 
at android.view.View.measure(View.java:17547) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535) 
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436) 
at android.widget.TableLayout.measureChildBeforeLayout(TableLayout.java:464) 
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722) 
at android.widget.TableLayout.measureVertical(TableLayout.java:476) 
at android.widget.TableLayout.onMeasure(TableLayout.java:439) 
at android.view.View.measure(View.java:17547) 
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727) 
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463) 
at android.view.View.measure(View.java:17547) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535) 
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436) 
at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:124) 
at android.view.View.measure(View.java:17547) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535) 
at android.support.v7.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:444) 
at android.view.View.measure(View.java:17547) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535) 
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436) 
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722) 
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613) 
at android.view.View.measure(View.java:17547) 
at android.widget.LinearLayout.measureVertical(LinearLayout.java:875) 
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613) 
at android.view.View.measure(View.java:17547) 
at com.android.layoutlib.bridge.impl.RenderSessionImpl.measureView(RenderSessionImpl.java:640) 
at com.android.layoutlib.bridge.impl.RenderSessionImpl.render(RenderSessionImpl.java:540) 
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:323) 
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) 
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:497) 
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:485) 
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:894) 
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:485) 
at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:590) 
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:644) 
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:79) 
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:586) 
at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:152) 
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:452) 
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:402) 
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54) 
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:137) 
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:581) 
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) 
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) 
at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) 
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) 
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) 
at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) 
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) 
at com.intellij.util.Alarm$Request$1.run(Alarm.java:351) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

и вот мой код:

<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:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> 

<TableLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:stretchColumns="*" > 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 

     <Button 
      android:text="Accelerate" 
      android:id="@+id/button" 
      android:layout_column="1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </TableRow> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="Left" 
      android:id="@+id/button4" 
      android:layout_column="0" /> 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="Stop" 
      android:id="@+id/button5" 
      android:layout_column="1" /> 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="Right" 
      android:id="@+id/button6" 
      android:layout_column="2" /> 
    </TableRow> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="Break" 
      android:id="@+id/button8" 
      android:layout_column="1" /> 
    </TableRow> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1"> 

     <SeekBar 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_span="3" 
      android:id="@+id/seekBar" 
      android:layout_column="0" /> 
    </TableRow> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 

     <SeekBar 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_span="3" 
      android:id="@+id/seekBar2" 
      android:layout_column="0" /> 
    </TableRow> 

</TableLayout> 

+0

Что вы точно изменить в XML? Можем ли мы видеть до/после? – cvesters

+0

@cvesters Я изменил все ** wrap_content ** на ** match_parent ** –

+0

Я не знаком с разработкой для android, но это концептуально звучит странно для меня, что вы хотите, чтобы высота строки была матерью его родителем (таблица). Я бы предложил попытаться отменить ваши изменения и повторно применить их один за другим, пока он не пойдет не так, – cvesters

ответ

3

Вы получаете исключение, потому что с помощью android:layout_column="1" свойства с android:layout_height="match_parent" является недопустимой ситуацией.

Попробуйте удалить android:layout_column="1" недвижимости, он должен работать.

Как следующее:

<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:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> 

<TableLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:stretchColumns="*"> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <Button 
      android:text="Accelerate" 
      android:id="@+id/button" 
      android:layout_span="3" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </TableRow> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="Left" 
      android:id="@+id/button4" 
      android:layout_column="0" /> 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Stop" 
      android:id="@+id/button5" 
      android:layout_column="1" /> 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Right" 
      android:id="@+id/button6" 
      android:layout_column="2" /> 
    </TableRow> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="Break" 
      android:id="@+id/button8"/> 
    </TableRow> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1"> 

     <SeekBar 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_span="3" 
      android:id="@+id/seekBar" 
      android:layout_column="0" /> 
    </TableRow> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 

     <SeekBar 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_span="3" 
      android:id="@+id/seekBar2" 
      android:layout_column="0" /> 
    </TableRow> 

</TableLayout> 
</RelativeLayout> 
+0

, но я хочу, чтобы моя первая кнопка во втором столбце. –

+1

вы можете создать пустой вид для первого столбца. – chandil03

+0

спас мой час хотя бы, пожалуйста, объясните причину немного, если вы получите время –

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