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);
}
}
ありがとう。
Gradle Plugin 2.0を使用している場合は、gradle
を変更する必要があります。
// Gradle Plugin 2.0+
Android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
Gradle 1.5を使用している場合、前の代わりに使用します:
// 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"
}
}
次も確認してください: 23.2.0にAndroidサポートライブラリを更新するとエラーが発生します:XmlPullParserExceptionバイナリXMLファイルの行#17 <vector>タグにはviewportWidth> 0が必要です 。
Androidサポートライブラリ参照: ベクターDrawableとアニメーションベクターDrawableをサポート 。
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
のバージョンのビルドツールを使用しているため。
他のソリューションのいずれかが機能しない場合は、アクティビティにこの行を追加できます
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
そしてもちろん、gradleとappcompatを最新バージョンに更新します。これは私の場合はうまくいきました。
これらのどれも私にとってはうまくいきませんでした。しかし、これは:
変化する
Android:src="@drawable/your_drawable"
に
app:srcCompat="@drawable/your_drawable"
Xamarin.Android.Support.Design 24.0.2を使用してXamarin.Androidでこの問題に遭遇しました。ここに私がそれを解決した方法があります:
次の行をアプリケーションクラス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);
このページはgoogle Android.content.res.Resources$NotFoundException: File res/drawable/
の最初の結果であるため、この例外はfoo.xmlに不適切なコードが含まれているによって引き起こされる可能性があることを共有したいと思います。
例えば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" />
が含まれていますが、コンパイルは成功しましたが、実行時に例外がスローされ、アプリによって異なります。
アクティビティで次のように使用します。
public class MainActivity extends AppCompatActivity {
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
...
}
あなたのbuild.gradleでこれ:
Android {
...
defaultConfig {
....
vectorDrawables.useSupportLibrary = true
}
}
そしてあなたのxmlで:
app:srcCompat="@drawable/your_icon"
この問題がありました。
ApplicationクラスのonCreate()メソッドで、次を追加します。
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
...また、ImageViewの代わりにAppCompatImageView
を使用します。
例: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" />
あなたの質問に特に関連しているわけではありませんが、そのエラーを探している間にここにいるすべての人のためにこの問題を解決できるかもしれません。
私にとっては、プロジェクトにインポートしたSVGファイルに問題がありました。 XMLのパスの1つに空のpathData
があり、それがPixel XL、Samsung Galaxy S7などの一部のデバイスでクラッシュを引き起こしていました...
したがって、SVGを画像ソースとして使用している場合は、画像のインポートされたXMLを再確認してください。
OK
1.-上記のpiotrek1543のようにライブラリが更新されていることを確認します2.-必要であればSDKを更新します3.- gradleファイルを更新します(非常に重要)
classpath 'com.Android.tools.build:gradle:2.1.0'
次に、アプリプロジェクト> app> graddle> graddlewrapper.propertiesに移動して、追加します
distributionUrl=https://services.gradle.org/distributions/gradle-2.10-all.Zip
4.- compile compileSdkVersionを24に変更し、buildToolsVersion "24.0.2"に変更します(SDKの依存関係が最新であることを確認してください)
楽しんで
上記のすべてのソリューションを試しました。私には何も機能しませんでした。私のために働いた唯一のことは、このバグが修正されているため、すべてのサポートライブラリを最新バージョンに更新することです。だから私は簡単にgradleファイルで以下のことをしました; SDKとサポートを25に更新しました。
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'
私の場合、XMLにはAndroid:endX
が含まれており、24以上をサポートしています。
ドロアブル内で?attr
を使用している場合、これがエラーの原因である可能性があります。
すべてのAndroidバージョンで使用できるように、Vector
Drawableに置き換えることを検討してください。
交換
<?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>
Kotlin-stdlib依存関係の変更:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.2.0"
へ
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.2.0"
はエラーを修正しました。