Android错误:此类应该是公共的[Instantiatable]

时间:2017-06-05 05:03:33

标签: java android android-studio

我在使用android studio时遇到了一些问题,我的编码很好,当我运行到设备时它运行正常,但是当我generate signed APK

时它出错了

以下是错误消息:

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偏好设置中禁用Lint并添加

lintOptions {
        abortOnError false
    }

我的成绩。在android标签内。但它似乎也不起作用。 有人和我一样面临同样的问题吗?

注意:我也尝试Invalidated Cache and Restart,但没有工作

1 个答案:

答案 0 :(得分: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);

        }