Ich laufe in die folgende Fehlermeldung nur dann, wenn sie mit Android auf einem Samsung Galaxy Nexus Telefon testen 4.3 und API 18.
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_error.xml
from drawable resource ID #0x7f020098
at android.content.res.Resources.loadDrawable(Resources.java:2091)
at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
at android.widget.TextView.<init>(TextView.java:803)
at android.widget.EditText.<init>(EditText.java:60)
In meinem Acitivty. Java-Datei, habe ich versucht, die folgenden Methoden, mit meinem Vektor ziehbar zu setzen:
editTextNickname.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_error, 0);
editTextNickname.setCompoundDrawables(null, null,
ContextCompat.getDrawable(getApplicationContext(), R.drawable.ic_error), null);
ich die neuesten Support-Bibliotheken in meiner build.gradle Datei verwenden, wie unten dargestellt:
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.peprally.jeremy.peprally"
minSdkVersion 16
targetSdkVersion 24
versionCode 1
versionName "1.0"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
}
}
repositories {
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:design:24.1.1'
compile 'com.android.support:cardview-v7:24.1.1'
compile 'com.android.support:support-v4:24.1.1'
compile 'com.android.support:support-vector-drawable:24.1.1'
compile 'com.facebook.android:facebook-android-sdk:4.6.0'
compile 'com.google.android.gms:play-services-appindexing:9.2.1'
compile 'com.google.firebase:firebase-core:9.2.1'
compile 'com.google.firebase:firebase-messaging:9.2.1'
compile 'com.amazonaws:aws-android-sdk-core:2.+'
compile 'com.amazonaws:aws-android-sdk-cognito:2.+'
compile 'com.amazonaws:aws-android-sdk-s3:2.+'
compile 'com.amazonaws:aws-android-sdk-ddb:2.+'
compile 'com.amazonaws:aws-android-sdk-ddb-mapper:2.+'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.volley:volley:1.0.0'
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha1'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
Ich habe ähnliche Probleme bei StackOverflow gesehen, aber noch keine guten Lösungen. Wenn jemand irgendwelche Einsichten hat, bitte helfen Sie! Vielen Dank!
< --edit ->
Nachdem das Problem zu ignorieren und es kam zurück, fand ich eine feste Lösung rund um die VectorDrawable nicht unterstützt Problem zu erhalten.
public static Drawable getAPICompatVectorDrawable(Context callingContext, int resource_id) {
if (android.os.Build.VERSION.SDK_INT >= 21) {
return ContextCompat.getDrawable(callingContext.getApplicationContext(), resource_id);
} else {
return VectorDrawableCompat.create(
callingContext.getResources(),
resource_id,
callingContext.getTheme());
}
}
Ich hatte Probleme auch Vektor Drawables versuchen, direkt in XML-Dateien zu setzen: auf, was vorgeschlagen wurde, können Sie VectorDrawables mit dem Code unten erstellen. Und ich konnte keinen Weg finden, das zu umgehen, also habe ich sie schließlich aus meinen XML-Dateien genommen und sie programmatisch in Java injiziert, indem ich dieselbe Funktion wie oben benutzt habe. Der Fehler, den ich aus der Verwendung von Vektor-Draw-Dateien in meinem XML-Code habe, wird unten gezeigt. Wenn jemand eine bessere Lösung hat, würde ich es gerne hören!
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.
peprally.jeremy.peprally/com.peprally.jeremy.peprally.activities.
NewCommentActivity}:
android.view.InflateException: Binary XML file line #90: Error inflating class TextView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #90:
Error inflating class TextView
omg ja, das hat funktioniert! bitte ausführlicher! Und vielen Dank für den Tipp, ich habe tagelang nach einer Lösung gesucht! – jerbotron
aber darüber hinaus stoße ich auf weitere Kompatibilitätsprobleme mit anderen UI-Komponenten wie FloatingActionButtons. – jerbotron
Vielleicht missverstehe ich, aber macht diese Gradle-Einstellung nicht etwas Ähnliches? 'vectorDrawables.useSupportLibrary = true' –