2017-06-05 47 views
-1

我面臨一些麻煩與Android的工作室,我的編碼是好​​的,它的工作,當我運行設備,但不知何故,它的錯誤,當我generate signed APKAndroid的錯誤:這個類應該是公共的[可實例]

這裏是錯誤消息:

Error:(25) Error: This class should be public (com.myapp.SoundLevelView) [Instantiatable] 

我的繼承人編碼:

public SoundLevelView(Context context, AttributeSet attrs) { 
      super(context, attrs); 

      mGreen = context.getResources().getDrawable(
        R.drawable.greenbar); 
      mRed = context.getResources().getDrawable(
        R.drawable.redbar); 

      mWidth = mGreen.getIntrinsicWidth(); 
      setMinimumWidth(mWidth*10); 

      mHeight = mGreen.getIntrinsicHeight(); 
      setMinimumHeight(mHeight); 

      //Used to paint canvas background color 
      mBackgroundPaint = new Paint(); 
      mBackgroundPaint.setColor(Color.BLACK); 

     } 

我嘗試從Android的首選項禁用皮棉,並添加

lintOptions { 
     abortOnError false 
    } 

我的成績。在android標籤內。但它似乎不起作用。有人遇到與我一樣的問題嗎?

注:我嘗試過Invalidated Cache and Restart,但沒有工作

+1

我想你需要一個空的構造。像'public SoundLevelView(){}'。 –

+0

@AkshayChordiya如果我補充一點,它的錯誤「Theres沒有默認構造函數可用'android.view.View' – themasmul

+0

您需要聲明該類爲public class SoundLevelView –

回答

0

試試這個:

public class SoundLevelView(Context context, AttributeSet attrs) { 
      super(context, attrs); 

      mGreen = context.getResources().getDrawable(
        R.drawable.greenbar); 
      mRed = context.getResources().getDrawable(
        R.drawable.redbar); 

      mWidth = mGreen.getIntrinsicWidth(); 
      setMinimumWidth(mWidth*10); 

      mHeight = mGreen.getIntrinsicHeight(); 
      setMinimumHeight(mHeight); 

      //Used to paint canvas background color 
      mBackgroundPaint = new Paint(); 
      mBackgroundPaint.setColor(Color.BLACK); 

     } 
相關問題