首页 > 解决方案 > 如何修复“java.lang.NoSuchMethodError:android.graphics.Canvas.drawArc”

问题描述

我尝试为我的项目制作动画登录应用程序。但它无法正常工作

我的方法如下:

 @Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    if (isLogin) {
        canvas.drawText(getString(R.string.sign_up), width / 2, dpToPixels(457), signUpPaint);
    } else {
        canvas.drawText(getString(R.string.login), width / 2, dpToPixels(457), loginPaint);
    }

    if (isLogin) {
        canvas.drawPath(loginButtonPath, loginButtonPaint);
        canvas.drawArc(
                currentRight - getButtonHeight() / 2 + currentArcX,
                buttonTop,
                currentRight + getButtonHeight() / 2 - currentArcX,
                buttonBottom,
                0,
                360,
                false,
                loginButtonPaint);

        canvas.drawText(getString(R.string.or), loginOrX, buttonCenter + dpToPixels(8), orPaint);
        canvas.drawText(getString(R.string.login), currentLoginX, currentLoginY, loginPaint);
    } else {
        canvas.drawPath(signUpButtonPath, signUpButtonPaint);
        canvas.drawArc(
                currentLeft - getButtonHeight() / 2 + currentArcX,
                buttonTop,
                currentLeft + getButtonHeight() / 2 - currentArcX,
                buttonBottom,
                0,
                360,
                false,
                signUpButtonPaint);

        canvas.drawText(getString(R.string.or), signUpOrX, buttonCenter + dpToPixels(8), orPaint);

        canvas.drawText(getString(R.string.sign_up), currentSignUpTextX, currentSignUpTextY, signUpPaint);
    }
}

以及我出错的部分

canvas.drawArc(
                currentRight - getButtonHeight() / 2 + currentArcX,
                buttonTop,
                currentRight + getButtonHeight() / 2 - currentArcX,
                buttonBottom,
                0,
                360,
                false,
                loginButtonPaint);

在这里我得到错误:

进程:com.myhexaville.login,PID:2758 java.lang.NoSuchMethodError: android.graphics.Canvas.drawArc at com.myhexaville.login.login.LoginButton.onDraw(LoginButton.java:230) at android.view.View。 draw(View.java:14465) 在 android.view.View.getDisplayList(View.java:13362) 在 android.view.View.getDisplayList(View.java:13404)

我找不到该语法的任何解决方案。需要帮助

01-12 15:33:26.467 2758-2758/? E/AndroidRuntime:致命异常:主进程:com.myhexaville.login,PID:2758 java.lang.NoSuchMethodError:com.myhexaville.login.login.LoginButton.onDraw 的 android.graphics.Canvas.drawArc(LoginButton.java:230 )

标签: android

解决方案


推荐阅读