解决JDK零值错误后,现在我面对这个错误。我做了一些研究,但似乎我无法达到目的。这是日志错误:
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)
我真的很困惑它可能是什么,我读到并且无法解决错误:
我的应用:gradle是这样的:
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'
这是我的样式文件夹:
<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>
如果需要我的mainactivity.class:
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);
}
}
感谢。
答案 0 :(得分:25)
如果您使用的是Gradle Plugin 2.0,则需要对gradle
进行更改:
// Gradle Plugin 2.0+
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
如果您使用的是Gradle 1.5,则将使用而不是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"
}
}
Android支持库参考:Support Vector Drawables and Animated Vector Drawables。
还可以从
更新Android支持依赖项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.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'
因为您已经在24.0.2
版本中使用了构建工具。
答案 1 :(得分:24)
如果任何其他解决方案不起作用,您可以在活动
中添加此行static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
当然,请将您的gradle和appcompat更新为最新版本。这适用于我的情况。
答案 2 :(得分:10)
这些都不适合我。但这样做了:
更改
android:src="@drawable/your_drawable"
到
app:srcCompat="@drawable/your_drawable"
答案 3 :(得分:7)
我在Xamarin.Android中使用Xamarin.Android.Support.Design 24.0.2遇到了这个问题。以下是我解决它的方法:
在我的应用程序类OnCreate
中添加了以下行:
AppCompatDelegate.CompatVectorFromResourcesEnabled = true;
替换:
var upArrow = ContextCompat.GetDrawable(this, Resource.Drawable.abc_ic_ab_back_material);
使用:
var upArrow = ResourcesCompat.GetDrawable(Resources, Resource.Drawable.abc_ic_ab_back_material, null);
答案 4 :(得分:5)
由于此页面是Google android.content.res.Resources$NotFoundException: File res/drawable/
的第一个结果,因此我想分享您的 foo.xml包含不正确的代码可能导致此异常。
e.g。 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>
此xml包含<size android:height="@android:style/Widget.ProgressBar.Horizontal" />
,它已成功编译但在运行时抛出异常,因应用程序而异。
答案 5 :(得分:2)
在“活动”中这样使用:
public class MainActivity extends AppCompatActivity {
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
...
}
,这在您的build.gradle中:
android {
...
defaultConfig {
....
vectorDrawables.useSupportLibrary = true
}
}
并在您的xml中:
app:srcCompat="@drawable/your_icon"
答案 6 :(得分:1)
好的,我刚刚解决了我的问题,问题是我的gradle过时和我的sdk,所以如果有人正在运行这个问题就行了这个步骤
1.-确保您的libs已更新为piotrek1543上述说明 2.-如果必要,请更新你的sdk 3.-更新您的gradle文件(非常重要) 只需转到项目gradle并添加此
classpath 'com.android.tools.build:gradle:2.1.0'
然后转到您的应用项目&gt; app&gt; graddle&gt; graddlewrapper.properties并添加
distributionUrl=https://services.gradle.org/distributions/gradle-2.10-all.zip
4.-将编译compileSdkVersion更改为24 和你的buildToolsVersion&#34; 24.0.2&#34; (确认你的相关信息是否与SDK持续日期)
玩得开心
答案 7 :(得分:1)
我已尝试过上述所有解决方案。没有什么对我有用。唯一对我有用的是非常简单的是将所有支持库更新到最新版本,因为已经修复了这个bug。所以我在gradle文件中做了以下简单的事情;更新了SDK并支持25.
parent_id
答案 8 :(得分:1)
与您的问题没有特别的关联,但也许可以解决所有在搜索错误时发现自己的问题。
对我来说,我已导入项目的SVG文件存在问题。 XML中的一个路径为空pathData
,导致Pixel XL,三星Galaxy S7等设备崩溃......
如果您使用SVG作为图像源,请仔细检查导入的XML图像。
答案 9 :(得分:1)
我尝试了以上所有答案,但大多数时候都因为清晰而没有成功。
只需执行以下操作:
最后,launch_background.xml文件应如下所示。
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/blue" />
<!-- You can insert your own image assets here -->
<item>
<bitmap android:gravity="center" android:src="@drawable/ic_launcher" />
</item>
</layer-list>
答案 10 :(得分:1)
我遇到了这个问题。
在您的Application类的onCreate()方法中,添加:
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
...,并且还使用AppCompatImageView
代替ImageView。
例如: 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" />
答案 11 :(得分:1)
就我而言,问题是超级类型错误。我动态添加了图像视图,并使用ImageView代替AppCompatImageView。选择合适的超类解决了这个问题。
答案 12 :(得分:0)
以上方法对我不起作用。我通过添加各种大小的图像来解决它,并使用了android:src以及它的工作原理。 在此处查看答案https://stackoverflow.com/a/64537207/11669081
答案 13 :(得分:0)
就我而言,问题在于使用矢量可绘制。 测试设备的规格是华为EVA-L19,Android:棉花糖
使用srcCompat
代替src
解决了我的问题。
答案 14 :(得分:0)
对我来说,问题是在 Kitkat 版本上运行应用程序时,我遇到了运行时崩溃。
问题:
android {
compileSdkVersion 28
defaultConfig {
//Change this to true to enable multidex support for Kitkat
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
}
解决方案: //注释矢量支持线
android {
//Change this to true to enable multidex support for Kitkat
multiDexEnabled true
//vectorDrawables.useSupportLibrary = true
}
答案 15 :(得分:0)
如果您在可绘制对象内部使用?attr
,则可能是错误原因。
考虑将其替换为Vector
Drawable,以便可以在所有android版本中使用:
替换
<?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>
使用:
<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>
答案 16 :(得分:0)
在我的情况下,XML包含android:endX
,支持24以上版本。
答案 17 :(得分:0)
更改kotlin-stdlib依赖关系:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.2.0"
到
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.2.0"
修正了错误。