Типы строк недопустимы (для шрифта со значением «обычный») - PullRequest
0 голосов
/ 13 февраля 2019

Есть один проект.Я обновил версию инструментов сборки, minSdkVersion и некоторые мелочи в gradle, но после синхронизации выдает ошибку типа String types not allowed (at 'font' with value 'regular')..Так что в активах есть 2 шрифта.

В приложении они использовали customTextView в xml.Посмотрите код ниже.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:custom="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <android.myviews.MyTextView
        android:id="@+id/tvActors"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="@dimen/movie_info_titles"
        custom:font="regular" />

</LinearLayout>

Ошибка в строке custom:font="regular".

public class MyTextView extends android.support.v7.widget.AppCompatTextView {
    public MyTextView(Context context, AttributeSet attrs) {
        super(context, attrs);

        TypedArray a = context.getTheme().obtainStyledAttributes(attrs,
                R.styleable.MyTextView, 0, 0);
        try {
            init(a.getInteger(R.styleable.MyTextView_font, 1));
        } finally {
            a.recycle();
        }
    }

    private void init(int font) {
        switch (font) {
            case 0:
                setTypeface(Font.getBold());
                break;
            case 1:
                setTypeface(Font.getRegular());
                break;
            default:
                break;
        }
    }
}

А вот Font.class

public class Font {
    private static Typeface tRegular;
    private static Typeface tBold;

    public Font(AssetManager mgr) {
        if (tRegular == null) {
            tRegular = Typeface.createFromAsset(mgr, "arlamu.ttf");
            tBold = Typeface.createFromAsset(mgr, "arlamub.ttf");
        }
    }

    public static Typeface getRegular() {
        return tRegular;
    }

    public static Typeface getBold() {
        return tBold;
    }
}

Вот мойgradle тоже, если вам это нужно.

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.0'
    defaultConfig {
        applicationId 'android'
        minSdkVersion 14
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
        }
    }
    productFlavors {
    }
}

android {
    lintOptions {
        disable "ResourceType"
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.android.support:appcompat-v7:28.0.0'
    compile 'com.android.support:support-v4:28.0.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
}

Так как я могу это исправить?Я использую Android Studio 2.3.

...