2016-05-02 10 views
0

私はAndroid開発には新しく、レンダリングの問題に悩まされています。示されている)。エラーメッセージは次のクラスをインスタンス化できませんでした - ボタンを拡張するカスタムクラスを使用すると、レンダリングの問題のメッセージが表示されます

The following classes could not be instantiated: 
    - com.project.simon.project.Segment 
java.lang.NullPointerException 
    at com.project.simon.project.Segment.<init>(Segment.java:22) 

と言い、カスタムクラスに関連しています。私はButtonを拡張し、独自のメソッドと変数を追加するために作成したセグメントです。 同じエラーメッセージが出るとアプリがクラッシュします。私は、プロジェクトを掃除しようとしましたアンドロイドスタジオを更新する、再構築する、キャッシュを無効にする/再起動するが問題は永続的です。

私はAndroid Studio 2.1を使用しています。私のアプリケーションの2番目のアクティビティでは、ボタンを実装する別のファイル(アクティビティと同じプロジェクト内にあります)で定義されたクラスセグメントからオブジェクトをインスタンス化します。活性

セグメント・オブジェクトの初期化:

package com.project.simon.project; 

import android.content.Context; 
import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.app.Activity; 
import android.os.CountDownTimer; 
import android.util.AttributeSet; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 


import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Timer; 
import java.util.TimerTask; 
import java.util.concurrent.Semaphore; 

public class GameActivity extends Activity { 

    static Integer numSeg = 0; 
    Integer selectedPart; 
    Segment songSegment; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_game); 

     songSegment = (Segment) findViewById(R.id.segment1); 
     ... 
    } 

セグメントオブジェクトIDのためのXML:

<com.project.simon.project.Segment 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="0dp" 
       android:layout_weight="30" 
       android:layout_height="120dp" 
       android:id="@+id/segment1" 
       android:layout_column="0" 
       android:background="@drawable/petolinie_part" 
       android:clickable="true" 
       android:layout_gravity="center_vertical" 
       android:baselineAlignBottom="false" 
       android:cropToPadding="false" 
       android:adjustViewBounds="false" 
       android:text="1" 
       android:textSize="30dp" 
       android:textColor="@android:color/black" /> 

クラスはButtonクラスからの3つのコンストラクタを有します。 numSegは、(OnCreateの外側の)Segmentオブジェクトをインスタンス化する、アクティビティ内の静的メンバ変数です。

package com.project.simon.project; 

import android.content.Context; 
import android.util.AttributeSet; 
import android.view.View; 
import android.widget.Button; 

/** 
* Created by simon on 28.4.2016. 
*/ 
public class Segment extends Button{ 
    boolean emptiness = false; 
    Integer part; 
    public Segment(Context context) { 
     super(context); 
     part = GameActivity.numSeg; 
     (GameActivity.numSeg)++; 
    } 
    public Segment(Context context, AttributeSet attrs){ 
     super(context, attrs); 
     part = GameActivity.numSeg; 
     (GameActivity.numSeg)++; //Segment.java:22 
    } 
    public Segment(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     part = GameActivity.numSeg; 
     (GameActivity.numSeg)++; 
    } 

    Integer whichPart(){ 
     return part; 
    } 

    void setPart(int part){ 
     this.part = part; 
    } 
    boolean isEmpty(){ 
     return emptiness; 
    } 
    void setEmpty(Boolean emptiness){ 
     this.emptiness = emptiness; 
    } 

} 

レンダリングの問題スタック私はエラーとして取得しています:

Rendering Problems The following classes could not be instantiated: 
- com.project.simon.project.Segment 

java.lang.NullPointerException 
    at com.project.simon.project.Segment.<init>(Segment.java:22) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
    at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:465) 
    at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:172) 
    at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:105) 
    at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:176) 
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:247) 
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:171) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:835) 
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:811) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:838) 
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:811) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:838) 
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:811) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:394) 
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:229) 
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:426) 
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) 
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:520) 
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:508) 
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:967) 
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:508) 
    at com.android.tools.idea.rendering.RenderTask.access$600(RenderTask.java:75) 
    at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:620) 
    at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:617) 
    at com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:371) 
    at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:617) 
    at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:639) 
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:654) 
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:82) 
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:596) 
    at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:142) 
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:446) 
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:392) 
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54) 
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:127) 
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:591) 
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337) 
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327) 
    at com.intellij.util.ui.update.MergingUpdateQueue$3.run(MergingUpdateQueue.java:271) 
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:286) 
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:244) 
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:234) 
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) 
    at com.intellij.util.Alarm$Request$1.run(Alarm.java:352) 
    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) 

答えて

0

GameActivitynumSegを初期化してみます。 何かのようなpublic static int numSeg = 0;

注:numSegstaticである必要があります。

+0

既に初期化されています。パブリックアクセス修飾子を追加しようとしましたが、何も変わりません。 – Aye

+0

@Ayeは 'static'ですか? – Mussa

+0

はい、私はポストに自分のコードを提供しました – Aye

関連する問題