Nach dem Lösen eines JDK-Nullwertfehlers stehe ich jetzt vor diesem. Ich habe ein wenig recherchiert, aber es scheint, dass ich nicht zur Sache kommen kann. Hier ist der Protokollfehler:
FATAL EXCEPTION: main
E/AndroidRuntime: Java.lang.RuntimeException: Unable to start activity ComponentInfo{.MainActivity}: Android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020013
E/AndroidRuntime: at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2204)
E/AndroidRuntime: at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2254)
E/AndroidRuntime: at Android.app.ActivityThread.access$600(ActivityThread.Java:141)
E/AndroidRuntime: at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1234)
E/AndroidRuntime: at Android.os.Handler.dispatchMessage(Handler.Java:99)
E/AndroidRuntime: at Android.os.Looper.loop(Looper.Java:137)
E/AndroidRuntime: at Android.app.ActivityThread.main(ActivityThread.Java:5069)
E/AndroidRuntime: at Java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime: at Java.lang.reflect.Method.invoke(Method.Java:511)
E/AndroidRuntime: at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:793)
E/AndroidRuntime: at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:560)
E/AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime: Caused by: Android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020013
E/AndroidRuntime: at Android.content.res.Resources.loadDrawable(Resources.Java:1953)
E/AndroidRuntime: at Android.content.res.Resources.getDrawable(Resources.Java:660)
E/AndroidRuntime: at Android.support.v4.content.ContextCompat.getDrawable(ContextCompat.Java:354)
E/AndroidRuntime: at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:193)
E/AndroidRuntime: at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:181)
E/AndroidRuntime: at Android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.Java:689)
E/AndroidRuntime: at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:186)
E/AndroidRuntime: at Android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.Java:77)
E/AndroidRuntime: at Android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.Java:83)
E/AndroidRuntime: at Android.support.v7.app.AppCompatDelegateImplV7.<init>(AppCompatDelegateImplV7.Java:146)
E/AndroidRuntime: at Android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.Java:28)
E/AndroidRuntime: at Android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.Java:41)
E/AndroidRuntime: at Android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.Java:193)
E/AndroidRuntime: at Android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.Java:173)
E/AndroidRuntime: at Android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.Java:511)
E/AndroidRuntime: at Android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.Java:71)
E/AndroidRuntime: at .MainActivity.onCreate(MainActivity.Java:29)
E/AndroidRuntime: at Android.app.Activity.performCreate(Activity.Java:5104)
E/AndroidRuntime: at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1092)
E/AndroidRuntime: at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2148)
E/AndroidRuntime: at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2254)
E/AndroidRuntime: at Android.app.ActivityThread.access$600(ActivityThread.Java:141)
E/AndroidRuntime: at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1234)
E/AndroidRuntime: at Android.os.Handler.dispatchMessage(Handler.Java:99)
E/AndroidRuntime: at Android.os.Looper.loop(Looper.Java:137)
E/AndroidRuntime: at Android.app.ActivityThread.main(ActivityThread.Java:5069)
E/AndroidRuntime: at Java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime: at Java.lang.reflect.Method.invoke(Method.Java:511)
E/AndroidRuntime: at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:793)
E/AndroidRuntime: at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:560)
E/AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime: Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #17: invalid drawable tag vector
E/AndroidRuntime: at Android.graphics.drawable.Drawable.createFromXmlInner(Drawable.Java:881)
E/AndroidRuntime: at Android.graphics.drawable.Drawable.createFromXml(Drawable.Java:822)
E/AndroidRuntime: at Android.content.res.Resources.loadDrawable(Resources.Java:1950)
E/AndroidRuntime: at Android.content.res.Resources.getDrawable(Resources.Java:660)
E/AndroidRuntime: at Android.support.v4.content.ContextCompat.getDrawable(ContextCompat.Java:354)
E/AndroidRuntime: at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:193)
E/AndroidRuntime: at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:181)
E/AndroidRuntime: at Android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.Java:689)
E/AndroidRuntime: at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:186)
E/AndroidRuntime: at Android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.Java:77)
E/AndroidRuntime: at Android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.Java:83)
E/AndroidRuntime: at Android.support.v7.app.AppCompatDelegateImplV7.<init>(AppCompatDelegateImplV7.Java:146)
E/AndroidRuntime: at Android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.Java:28)
E/AndroidRuntime: at Android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.Java:41)
E/AndroidRuntime: at Android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.Java:193)
E/AndroidRuntime: at Android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.Java:173)
E/AndroidRuntime: at Android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.Java:511)
E/AndroidRuntime: at Android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.Java:71)
E/AndroidRuntime: at .MainActivity.onCreate(MainActivity.Java:29)
E/AndroidRuntime: at Android.app.Activity.performCreate(Activity.Java:5104)
E/AndroidRuntime: at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1092)
E/AndroidRuntime: at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2148)
E/AndroidRuntime: at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2254)
E/AndroidRuntime: at Android.app.ActivityThread.access$600(ActivityThread.Java:141)
E/AndroidRuntime: at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1234)
E/AndroidRuntime: at Android.os.Handler.dispatchMessage(Handler.Java:99)
E/AndroidRuntime: at Android.os.Looper.loop(Looper.Java:137)
E/AndroidRuntime: at Android.app.ActivityThread.main(ActivityThread.Java:5069)
E/AndroidRuntime: at Java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime: at Java.lang.reflect.Method.invoke(Method.Java:511)
E/AndroidRuntime: at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:793)
E/AndroidRuntime: at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:560)
E/AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
Ich bin wirklich verwirrt, was es sein kann, ich lese und kann den Fehler nicht finden:
Meine App: gradle ist das:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 23
buildToolsVersion "24.0.2"
defaultConfig {
applicationId "me.me2.com.myapp"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:23.4.0'
compile 'com.Android.support:design:23.4.0'
compile 'com.Android.support:recyclerview-v7:23.4.0'
compile 'com.Android.support:cardview-v7:23.4.0'
compile 'com.google.firebase:firebase-storage:9.4.0'
compile 'com.google.firebase:firebase-database:9.4.0'
compile 'com.google.firebase:firebase-auth:9.4.0'
compile 'com.firebaseui:firebase-ui-database:0.4.4'
compile 'com.squareup.picasso:picasso:2.5.2'
}
apply plugin: 'com.google.gms.google-services'
Hier ist mein Stilordner:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
<style name="Divider">
<item name="Android:layout_width">match_parent</item>
<item name="Android:layout_height">1dp</item>
<item name="Android:background">?android:attr/listDivider</item>
</style>
</resources>
Und meine mainactivity.class bei Bedarf:
public class MainActivity extends AppCompatActivity {
VideoView videoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// VideoView
videoView = (VideoView) findViewById(R.id.videoview);
videoView.setVideoURI(Uri.parse("Android.resource://"+getPackageName() + "/" +R.raw.video));
videoView.requestFocus();
/**
* Loop
*/
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
videoView.start();
mp.setLooping(true);
}
});
}
public void Login(View view) {
Intent intent = new Intent(this, FragmentMain.class);
startActivity(intent);
// finish();
}
public void Registro(View view) {
Intent intent = new Intent(this, Registro.class);
startActivity(intent);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Vielen Dank.
Wenn Sie das Gradle Plugin 2.0 verwenden, müssen Sie Änderungen an Ihrer gradle
vornehmen:
// Gradle Plugin 2.0+
Android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
Wenn Sie Gradle 1.5 verwenden, verwenden Sie anstelle von previus:
// Gradle Plugin 1.5
Android {
defaultConfig {
// Stops the Gradle plugin's automatic rasterization of vectors
generatedDensities = []
}
// Flag to tell aapt to keep the attribute ids around
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
Überprüfen Sie auch: Aktualisieren Sie die Android Support Library auf 23.2.0 - Fehler: XmlPullParserException Binary XML-Dateizeile # 17 <vector> -Tag erfordert viewportWidth> 0 .
Android Support Library Ref .: Support Vector Drawables und Animated Vector Drawables .
Aktualisieren Sie auch die Android Support-Abhängigkeiten von
compile 'com.Android.support:appcompat-v7:23.4.0'
compile 'com.Android.support:design:23.4.0'
compile 'com.Android.support:recyclerview-v7:23.4.0'
compile 'com.Android.support:cardview-v7:23.4.0'
zu
compile 'com.Android.support:appcompat-v7:24.2.0'
compile 'com.Android.support:design:24.2.0'
compile 'com.Android.support:recyclerview-v7:24.2.0'
compile 'com.Android.support:cardview-v7:24.2.0'
da Sie bereits Build-Tools in der Version von 24.0.2
verwenden.
Wenn eine der anderen Lösungen nicht funktioniert, können Sie diese Zeile in Ihre Aktivität einfügen
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
und natürlich aktualisieren sie ihr gradle und appcompat auf die neuesten versionen. Das hat in meinem Fall funktioniert.
Nichts davon hat für mich gearbeitet. Aber das tat:
Veränderung
Android:src="@drawable/your_drawable"
zu
app:srcCompat="@drawable/your_drawable"
Ich habe dieses Problem in Xamarin.Android mit Xamarin.Android.Support.Design 24.0.2 entdeckt. So habe ich es gelöst:
Die folgende Zeile wurde meiner Anwendungsklasse OnCreate
hinzugefügt:
AppCompatDelegate.CompatVectorFromResourcesEnabled = true;
Ersetzt:
var upArrow = ContextCompat.GetDrawable(this, Resource.Drawable.abc_ic_ab_back_material);
Mit:
var upArrow = ResourcesCompat.GetDrawable(Resources, Resource.Drawable.abc_ic_ab_back_material, null);
Da diese Seite das erste Ergebnis von Google Android.content.res.Resources$NotFoundException: File res/drawable/
ist, möchte ich mitteilen, dass diese Ausnahme durch Ihre foo.xml verursacht werden könnte, die einen falschen Code enthält.
z.B. foo.xml
:
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:id="@Android:id/background">
<shape>
<size Android:height="@Android:style/Widget.ProgressBar.Horizontal" />
<corners Android:radius="5dip" />
<gradient
Android:startColor="#000000"
Android:centerY="0.75"
Android:angle="270"
/>
</shape>
</item>
</layer-list>
Diese XML-Datei enthält <size Android:height="@Android:style/Widget.ProgressBar.Horizontal" />
, der erfolgreich kompiliert wurde, zur Runtime jedoch eine Ausnahme auslöst, je nach App.
verwenden Sie diese Option in Ihrer Aktivität:
public class MainActivity extends AppCompatActivity {
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
...
}
und das in deinem build.gradle:
Android {
...
defaultConfig {
....
vectorDrawables.useSupportLibrary = true
}
}
und in deiner XML:
app:srcCompat="@drawable/your_icon"
Ich hatte dieses Problem.
Fügen Sie in Ihrer Anwendungsklasse in der Methode onCreate () Folgendes hinzu:
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
... und verwenden Sie statt ImageView auch AppCompatImageView
.
Beispiel: BaseApplication.class:
public class BaseApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//Your other code here...
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
}
XML:
<androidx.appcompat.widget.AppCompatImageView
Android:id="@+id/yourIvId"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
Nicht speziell auf Ihre Frage bezogen, kann aber möglicherweise dieses Problem für alle lösen, die sich hier auf der Suche nach diesem Fehler befinden.
Für mich war das Problem mit der SVG-Datei, die ich in mein Projekt importiert habe. Einer der Pfade in XML hat pathData
leer, was bei einigen Geräten wie Pixel XL, Samsung Galaxy S7, ...
Überprüfen Sie also das importierte XML-Dokument für ein Bild, wenn Sie SVG als Bildquelle verwenden.
Ok, ich habe gerade mein Problem gelöst, das Problem war mein veralteter Gradle und mein Sdk. Wenn also jemand mit diesem Problem läuft, führen Sie einfach diese Schritte aus
1.- Vergewissern Sie sich, dass Ihre Bibliotheken aktualisiert sind. Piotrek1543 sagt oben 2.- Aktualisieren Sie Ihre SDK, falls dies erforderlich ist 3.- Aktualisieren Sie Ihre Abstufungsdateien (SEHR WICHTIG) .__ diese
classpath 'com.Android.tools.build:gradle:2.1.0'
dann gehen Sie zu Ihrem App-Projekt> app> graddle> graddlewrapper.properties und fügen Sie hinzu
distributionUrl=https://services.gradle.org/distributions/gradle-2.10-all.Zip
4.- ändern Sie compileSdkVersion in 24 und Ihre buildToolsVersion "24.0.2" ( STELLEN SIE SICHER, DASS DIE ABHÄNGIGKEITEN AUF DEM DATUM MIT DEM SDK SIND )
Habe Spaß
Ich habe alle oben genannten Lösungen ausprobiert. Nichts hat für mich funktioniert. Das einzige, was für mich funktioniert hat, ist sehr einfach, alle Unterstützungsbibliotheken auf die neueste Version zu aktualisieren, da dieser Fehler behoben wurde. Also habe ich einfach die unten stehende Sache in Gradle-Datei gemacht; SDK und Support auf 25 aktualisiert.
Android {
compileSdkVersion 25
buildToolsVersion "25"
defaultConfig {
targetSdkVersion 25
}
}
In dependencies
compile 'com.Android.support:appcompat-v7:25.1.0'
compile 'com.Android.support:design:25.1.0'
compile 'com.Android.support:recyclerview-v7:25.1.0'
in meinem Fall enthielt das XML Android:endX
, das 24 unterstützt.
Wenn Sie in Ihrem Drawable ?attr
Verwenden, kann dies der Grund für einen Fehler sein.
erwägen Sie, es durch Vector
Drawable zu ersetzen, damit es in allen Android Versionen verwendet werden kann:
Ersetzen
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
<shape Android:shape="rectangle">
<solid Android:color="?attr/navigationIconColor" />
</shape>
</item>
</selector>
Mit:
<vector xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:width="37dp"
Android:height="5dp"
Android:viewportWidth="37"
Android:viewportHeight="5">
<path
Android:pathData="M2.5,0h32C35.9,0 37,1.1 37,2.5l0,0C37,3.9 35.9,5 34.5,5h-32C1.1,5 0,3.9 0,2.5l0,0C0,1.1 1.1,0 2.5,0z"
Android:fillColor="?attr/navigationIconColor"/>
</vector>
Ändern der Kotlin-Stdlib-Abhängigkeit von:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.2.0"
to
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.2.0"
hat den Fehler behoben.