Ресурс не найден Исключение для устройств на API 24 и выше - PullRequest
0 голосов
/ 04 октября 2018

Мое приложение использует векторные рисованные объекты, и оно отлично работает на всех устройствах ниже уровня API 24. Я уже включил android.defaultConfig.vectorDrawables.useSupportLibrary = true в файле Gradle, а ниже приведен код для imageView

<android.support.v7.widget.AppCompatImageView
            android:layout_marginTop="3dp"
            android:id="@+id/imageView1"
            android:layout_width="64dp"
            android:layout_height="64dp"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:scaleType="fitCenter"
            app:srcCompat="@mipmap/ic_launcher">
            </android.support.v7.widget.AppCompatImageView>

программно.динамическое изменение изображений следующим образом view.imgView.setImageResource( iconImage.get( position ) ); iconImage представляет собой ArrayList, который содержит различные изображения, и я заполняю его следующим кодом

private void prepareList() {

    iconImage = new ArrayList<>();
    iconText = new ArrayList<>();

    iconImage.add(R.drawable.ic_new_profile);
    iconText.add( LanguageSwitch.myProfile );

    iconImage.add( R.drawable.ic_new_contributions );
    iconText.add( LanguageSwitch.contributions );

    iconImage.add( R.drawable.ic_new_benefits );
    iconText.add( LanguageSwitch.benefits );

    iconImage.add( R.drawable.ic_new_claims );
    iconText.add( LanguageSwitch.claims );

    iconImage.add( R.drawable.ic_new_dependents );
    iconText.add( LanguageSwitch.dependants );

    iconImage.add(R.drawable.ic_new_cards );
    iconText.add( LanguageSwitch.mycard );

    iconImage.add(R.drawable.ic_new_facility );
    iconText.add( LanguageSwitch.facilities );

    iconImage.add( R.drawable.ic_new_preauth );
    iconText.add( getResources().getString( R.string.preuath ) );

    iconImage.add(R.drawable.ic_new_contact_us );
    iconText.add( LanguageSwitch.contact_us );

}

Мой файл Gradle выглядит следующим образом:

android {
    compileSdkVersion 26
    buildToolsVersion '27.0.3'
    defaultConfig {
        applicationId "xxx.xxx.xxxx"
        minSdkVersion 18
        targetSdkVersion 26
        versionCode 32
        versionName "2.0.3"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        android.defaultConfig.vectorDrawables.useSupportLibrary = true
        applicationId "com.ngenx.nhif"
        multiDexEnabled true

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE-FIREBASE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/rxjava.properties'

    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

Инаконец файл журнала:

Process: com.ngenx.nhif, PID: 5233
    android.content.res.Resources$NotFoundException: Drawable com.ngenx.nhif:drawable/ic_new_profile with resource ID #0x7f0800d3
    Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_new_profile.xml from drawable resource ID #0x7f0800d3
        at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:725)
        at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571)
        at android.content.res.Resources.getDrawable(Resources.java:767)
        at android.content.Context.getDrawable(Context.java:525)
        at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:358)
        at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:198)
        at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:186)
        at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100)
        at android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:85)
        at android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:93)
        at com.ngenx.nhif.MainMenuAdapter.getView(MainMenuAdapter.java:76)
        at android.widget.AbsListView.obtainView(AbsListView.java:2362)
        at android.widget.GridView.onMeasure(GridView.java:1065)
        at android.view.View.measure(View.java:19734)
        at android.support.constraint.ConstraintLayout.onMeasure(ConstraintLayout.java:1619)
        at android.view.View.measure(View.java:19734)

1 Ответ

0 голосов
/ 05 октября 2018
defaultConfig { vectorDrawables.useSupportLibrary = true }

работал нормально, у меня была проблема с испорченными иконками SVG.Я понял это после замены их на старые, которые работали нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...