Android studio 3.0を使用しています
この問題を修正するのに疲れています。アプリはそれを常に実行しないこのエラーを常に表示するBinary XML file line#0:Error inflating class ImageView
これは私のmain_activity.xmlです。ConstraintLayoutを使用してxmlを変更しました
<?xml version="1.0" encoding="utf-8"?>
<Android.support.constraint.ConstraintLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
tools:context="com.example.razoo.mywages.MainActivity">
<ImageView
Android:id="@+id/imageView2"
Android:layout_width="wrap_content"
Android:layout_height="517dp"
Android:contentDescription="@string/button3"
Android:scaleType="fitXY"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
Android:src="@drawable/doctor" />
<Button
Android:id="@+id/step1btn"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_margin="4dp"
Android:background="@color/colorPrimary"
Android:onClick="nextPage"
Android:text="@string/button3"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.498"
tools:layout_alignParentEnd="true"
tools:layout_alignParentRight="true"
tools:layout_alignParentTop="true"
/>
<Button
Android:id="@+id/button3"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_margin="16dp"
Android:background="@color/colorPrimary"
Android:text="@string/button3"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:layout_alignParentEnd="true"
tools:layout_alignParentRight="true"
tools:layout_alignParentTop="true" />
メインアクティビティのJavaコード
public class MainActivity extends Activity {
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);//the error point here
btn1 = (Button) findViewById(R.id.step1btn);
}
public void nextPage(View view){
Intent StartNewActivity = new Intent(MainActivity.this, Main2Activity.class);
startActivity(StartNewActivity);
}
}
これは完全なログです。
Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.razoo.mywages/com.example.razoo.mywages.MainActivity}: Android.view.InflateException: Binary XML file line #0: Error inflating class Android.widget.ImageView
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2305)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2365)
at Android.app.ActivityThread.access$800(ActivityThread.Java:148)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1283)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:135)
at Android.app.ActivityThread.main(ActivityThread.Java:5272)
at Java.lang.reflect.Method.invoke(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:372)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:909)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:704)
Caused by: Android.view.InflateException: Binary XML file line #0: Error inflating class Android.widget.ImageView
at Android.view.LayoutInflater.createView(LayoutInflater.Java:633)
at com.Android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.Java:55)
at Android.view.LayoutInflater.onCreateView(LayoutInflater.Java:682)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:741)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:806)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:504)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:365)
at com.Android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.Java:387)
at Android.app.Activity.setContentView(Activity.Java:2188)
at com.example.razoo.mywages.MainActivity.onCreate(MainActivity.Java:16)
at Android.app.Activity.performCreate(Activity.Java:5977)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1105)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2258)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2365)
at Android.app.ActivityThread.access$800(ActivityThread.Java:148)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1283)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:135)
at Android.app.ActivityThread.main(ActivityThread.Java:5272)
at Java.lang.reflect.Method.invoke(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:372)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:909)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:704)
Caused by: Java.lang.reflect.InvocationTargetException
at Java.lang.reflect.Constructor.newInstance(Native Method)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:288)
at Android.view.LayoutInflater.createView(LayoutInflater.Java:607)
at com.Android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.Java:55)
at Android.view.LayoutInflater.onCreateView(LayoutInflater.Java:682)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:741)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:806)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:504)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:365)
at com.Android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.Java:387)
at Android.app.Activity.setContentView(Activity.Java:2188)
at com.example.razoo.mywages.MainActivity.onCreate(MainActivity.Java:16)
at Android.app.Activity.performCreate(Activity.Java:5977)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1105)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2258)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2365)
at Android.app.ActivityThread.access$800(ActivityThread.Java:148)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1283)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:135)
at Android.app.ActivityThread.main(ActivityThread.Java:5272)
at Java.lang.reflect.Method.invoke(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:372)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:909)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:704)
Caused by: Android.content.res.Resources$NotFoundException: Resource "com.example.razoo.mywages:drawable/doctor" (7f060054) is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f060054 a=-1 r=0x7f060054}
at Android.content.res.Resources.loadDrawableForCookie(Resources.Java:2431)
at Android.content.res.Resources.loadDrawable(Resources.Java:2371)
at Android.content.res.TypedArray.getDrawable(TypedArray.Java:749)
at Android.widget.ImageView.<init>(ImageView.Java:146)
at Android.widget.ImageView.<init>(ImageView.Java:135)
at Android.widget.ImageView.<init>(ImageView.Java:131)
at Java.lang.reflect.Constructor.newInstance(Native Method)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:288)
at Android.view.LayoutInflater.createView(LayoutInflater.Java:607)
at com.Android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.Java:55)
at Android.view.LayoutInflater.onCreateView(LayoutInflater.Java:682)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:741)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:806)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:504)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:365)
at com.Android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.Java:387)
at Android.app.Activity.setContentView(Activity.Java:2188)
at com.example.razoo.mywages.MainActivity.onCreate(MainActivity.Java:16)
at Android.app.Activity.performCreate(Activity.Java:5977)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1105)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2258)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2365)
at Android.app.ActivityThread.access$800(ActivityThread.Java:148)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1283)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:135)
at Android.app.ActivityThread.main(ActivityThread.Java:5272)
at Java.lang.reflect.Method.invoke(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:372)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:909)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:704)
一部のSVGソースは完全にはサポートされていないようです。アクティビティのonCreate()メソッド内に次の行を追加します。
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
画像を定義するには、Android:srcの代わりにapp:srcCompactのxmlファイルでImageViewの属性として以下を使用してください。
drawable(v-24)に画像を貼り付けないで、それをdrawableフォルダーに貼り付けてプロジェクトをきれいにしてから実行してください。
この種の問題の解決策:バイナリXMLファイルの行#0:クラスImageViewの膨張エラー
解決:
FirebaseイメージファイルはDrawer-24にあります
画像ファイルがドロワー-24にある場合、ファイルを右クリックして、リファクタリングをクリックしてから移動
次に、Wordの「-24」を削除し、[OK]をクリックして、もう一度実行します。
できました。
ImageViewでAndroid:src="@drawable/doctor"
を使用します
app:srcCompat
の代わりにAndroid:src
を使用しています。 Android studio 3.0で動作します
私の知る限り、この問題は、Explorerからdrawableフォルダーに画像を貼り付けてから、天気を指定してdrawableまたはdrawable-v24をコピーし、両方のディレクトリ構造に画像を貼り付けた場合、または別のディレクトリ構造の画像をもう1つ持っている場合に発生しますこのエラーが表示されますので、必ず「drawable」ディレクトリ構造の画像のみをコピーしてください:)
私の場合、プロガードのためにリリースビルドのみでクラッシュしていましたので、この行を追加した後:
-keep class Android.support.v7.widget.** { *; }
ファイルproguard-rules.pro
で、クラッシュは解決されました。
受け入れられた回答に既にオプションがある場合は、ベクターが「drawable-anydpi」フォルダーにあるかどうかを確認してください。 「描画可能」フォルダに移動すると修正されます。