【问题标题】:Getting Inflate exception inconsistently in Android在 Android 中不一致地获取 Inflate 异常
【发布时间】:2012-10-09 10:07:30
【问题描述】:

我的模拟器和设备上出现不一致的 Inflate 异常,但有时它可以正常工作

它显示在第 -16 行的 xml 中,我遇到了问题,因为我使用的是两个图像,一个在另一个之上

我有一个位图图像,但我保留了一个 .png 图像。

这是因为我在 xml 中拥有的图像吗?几乎我的 xml 中有 10 张图片

我在具有 800 跨 480 分辨率的模拟器中运行此应用程序

我不知道如何解决这个问题,总是感谢任何帮助。

Logcat 显示这些消息

 10-09 09:39:34.667: E/AndroidRuntime(339): FATAL EXCEPTION: main
 10-09 09:39:34.667: E/AndroidRuntime(339): java.lang.RuntimeException: Unable to start activity ComponentInfo{co.msat.carhome.clusters/co.msat.carhome.clusters.ClustersActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class <unknown>
 10-09 09:39:34.667: E/AndroidRuntime(339):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
 10-09 09:39:34.667: E/AndroidRuntime(339):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
 10-09 09:39:34.667: E/AndroidRuntime(339):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
10-09 09:39:34.667: E/AndroidRuntime(339):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
10-09 09:39:34.667: E/AndroidRuntime(339):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-09 09:39:34.667: E/AndroidRuntime(339):  at android.os.Looper.loop(Looper.java:123)
10-09 09:39:34.667: E/AndroidRuntime(339):  at android.app.ActivityThread.main(ActivityThread.java:3683)
10-09 09:39:34.667: E/AndroidRuntime(339):  at java.lang.reflect.Method.invokeNative(Native Method)
10-09 09:39:34.667: E/AndroidRuntime(339):  at java.lang.reflect.Method.invoke(Method.java:507)
 10-09 09:39:34.667: E/AndroidRuntime(339):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-09 09:39:34.667: E/AndroidRuntime(339):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-09 09:39:34.667: E/AndroidRuntime(339):  at dalvik.system.NativeStart.main(Native Method)
10-09 09:39:34.667: E/AndroidRuntime(339): Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class <unknown>
10-09 09:39:34.667: E/AndroidRuntime(339):  at android.view.LayoutInflater.createView(LayoutInflater.java:518)
10-09 09:39:34.667: E/AndroidRuntime(339):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
  10-09 09:39:34.667: E/AndroidRuntime(339):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
10-09 09:39:34.667: E/AndroidRuntime(339):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
10-09 09:39:34.667: E/AndroidRuntime(339):  at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
   10-09 09:39:34.667: E/AndroidRuntime(339):   at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
   10-09 09:39:34.667: E/AndroidRuntime(339):   at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
   10-09 09:39:34.667: E/AndroidRuntime(339):   at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
   10-09 09:39:34.667: E/AndroidRuntime(339):   at android.app.Activity.setContentView(Activity.java:1657)
  10-09 09:39:34.667: E/AndroidRuntime(339):    at co.msat.carhome.clusters.ClustersActivity.onCreate(ClustersActivity.java:53)
  10-09 09:39:34.667: E/AndroidRuntime(339):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
  10-09 09:39:34.667: E/AndroidRuntime(339):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
  10-09 09:39:34.667: E/AndroidRuntime(339):    ... 11 more
  10-09 09:39:34.667: E/AndroidRuntime(339): Caused by: java.lang.reflect.InvocationTargetException
  10-09 09:39:34.667: E/AndroidRuntime(339):    at java.lang.reflect.Constructor.constructNative(Native Method)
  10-09 09:39:34.667: E/AndroidRuntime(339):    at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
  10-09 09:39:34.667: E/AndroidRuntime(339):    at android.view.LayoutInflater.createView(LayoutInflater.java:505)
  10-09 09:39:34.667: E/AndroidRuntime(339):    ... 22 more
  10-09 09:39:34.667: E/AndroidRuntime(339): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x12/d=0x0 a=2 r=0x7f070001}
  10-09 09:39:34.667: E/AndroidRuntime(339):    at android.content.res.Resources.loadDrawable(Resources.java:1681)
  10-09 09:39:34.667: E/AndroidRuntime(339):    at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
    10-09 09:39:34.667: E/AndroidRuntime(339):  at android.view.View.<init>(View.java:1951)
    10-09 09:39:34.667: E/AndroidRuntime(339):  at android.widget.ImageView.<init>(ImageView.java:112)
    10-09 09:39:34.667: E/AndroidRuntime(339):  at android.widget.ImageView.<init>(ImageView.java:108)
     10-09 09:39:34.667: E/AndroidRuntime(339):     ... 25 more
     10-09 09:44:34.836: I/Process(339): Sending signal. PID: 339 SIG: 9
     10-09 09:54:16.536: D/AndroidRuntime(368): Shutting down VM
     10-09 09:54:16.536: W/dalvikvm(368): threadid=1: thread exiting with uncaught exception (group=0x40015560)
     10-09 09:54:16.667: E/AndroidRuntime(368): FATAL EXCEPTION: main
     10-09 09:54:16.667: E/AndroidRuntime(368): java.lang.RuntimeException: Unable to start activity ComponentInfo{co.msat.carhome.clusters/co.msat.carhome.clusters.ClustersActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class <unknown>
    10-09 09:54:16.667: E/AndroidRuntime(368):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
    10-09 09:54:16.667: E/AndroidRuntime(368):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
    10-09 09:54:16.667: E/AndroidRuntime(368):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
     10-09 09:54:16.667: E/AndroidRuntime(368):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
     10-09 09:54:16.667: E/AndroidRuntime(368):     at android.os.Handler.dispatchMessage(Handler.java:99)
     10-09 09:54:16.667: E/AndroidRuntime(368):     at android.os.Looper.loop(Looper.java:123)
     10-09 09:54:16.667: E/AndroidRuntime(368):     at android.app.ActivityThread.main(ActivityThread.java:3683)
     10-09 09:54:16.667: E/AndroidRuntime(368):     at java.lang.reflect.Method.invokeNative(Native Method)
     10-09 09:54:16.667: E/AndroidRuntime(368):     at java.lang.reflect.Method.invoke(Method.java:507)
     10-09 09:54:16.667: E/AndroidRuntime(368):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
     10-09 09:54:16.667: E/AndroidRuntime(368):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
      10-09 09:54:16.667: E/AndroidRuntime(368):    at dalvik.system.NativeStart.main(Native Method)
      10-09 09:54:16.667: E/AndroidRuntime(368): Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class <unknown>
     10-09 09:54:16.667: E/AndroidRuntime(368):     at android.view.LayoutInflater.createView(LayoutInflater.java:518)
     10-09 09:54:16.667: E/AndroidRuntime(368):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
    10-09 09:54:16.667: E/AndroidRuntime(368):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
    10-09 09:54:16.667: E/AndroidRuntime(368):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
    10-09 09:54:16.667: E/AndroidRuntime(368):  at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
    10-09 09:54:16.667: E/AndroidRuntime(368):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
   10-09 09:54:16.667: E/AndroidRuntime(368):   at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
   10-09 09:54:16.667: E/AndroidRuntime(368):   at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
   10-09 09:54:16.667: E/AndroidRuntime(368):   at android.app.Activity.setContentView(Activity.java:1657)
   10-09 09:54:16.667: E/AndroidRuntime(368):   at co.msat.carhome.clusters.ClustersActivity.onCreate(ClustersActivity.java:53)
  10-09 09:54:16.667: E/AndroidRuntime(368):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
  10-09 09:54:16.667: E/AndroidRuntime(368):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
  10-09 09:54:16.667: E/AndroidRuntime(368):    ... 11 more
  10-09 09:54:16.667: E/AndroidRuntime(368): Caused by: java.lang.reflect.InvocationTargetException
 10-09 09:54:16.667: E/AndroidRuntime(368):     at java.lang.reflect.Constructor.constructNative(Native Method)
  10-09 09:54:16.667: E/AndroidRuntime(368):    at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
 10-09 09:54:16.667: E/AndroidRuntime(368):     at android.view.LayoutInflater.createView(LayoutInflater.java:505)
 10-09 09:54:16.667: E/AndroidRuntime(368):     ... 22 more
  10-09 09:54:16.667: E/AndroidRuntime(368): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x12/d=0x0 a=2 r=0x7f070001}
  10-09 09:54:16.667: E/AndroidRuntime(368):    at android.content.res.Resources.loadDrawable(Resources.java:1681)
  10-09 09:54:16.667: E/AndroidRuntime(368):    at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
  10-09 09:54:16.667: E/AndroidRuntime(368):    at android.view.View.<init>(View.java:1951)
  10-09 09:54:16.667: E/AndroidRuntime(368):    at android.widget.ImageView.<init>(ImageView.java:112)
  10-09 09:54:16.667: E/AndroidRuntime(368):    at android.widget.ImageView.<init>(ImageView.java:108)
  10-09 09:54:16.667: E/AndroidRuntime(368):    ... 25 more

这是我的 xml 代码

      <?xml version="1.0" encoding="utf-8"?>
      <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/my_ph"
     android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

<ImageView
    android:id="@+id/meter"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:layout_marginLeft="110dip"
    android:layout_marginTop="80dip"
    android:src="@drawable/background" />

 <ImageView
    android:id="@+id/pointer1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:layout_marginLeft="110dip"
    android:layout_marginTop="80dip"
    android:background="@+id/meter"
    android:visibility="visible" /> 

<!--
    android:layout_gravity="left"
    android:layout_marginLeft="170dip"
    android:layout_marginTop="100dip"        
    android:src="@drawable/meat_speedometer_needle01"
-->

<ImageView
    android:id="@+id/rpm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:layout_marginLeft="290dip"
    android:layout_marginTop="80dip"
    android:src="@drawable/background" />

<ImageView
    android:id="@+id/pointer2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:layout_marginLeft="290dip"
    android:layout_marginTop="80dip"
    android:background="@+id/rpm"
    android:visibility="visible" />

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="60dp" >

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <ImageView
            android:id="@+id/text1"
            android:layout_width="30dp"
            android:layout_height="20dp"
            android:layout_marginLeft="50dip"
            android:layout_marginTop="30dp"
            android:background="@drawable/leftarrow"
            android:textSize="10dp" />

        <TextView
            android:id="@+id/text2"
            android:layout_width="30dp"
            android:layout_height="20dp"
            android:layout_marginLeft="170dip"
            android:layout_marginTop="30dp"
            android:background="#ff0000"
            android:textSize="10dp" />

        <ImageView
            android:id="@+id/rightindicator"
            android:layout_width="30dp"
            android:layout_height="20dp"
            android:layout_marginLeft="180dip"
            android:layout_marginTop="30dp"
            android:background="@drawable/rightarrow"
            android:textSize="10dp" />
    </TableRow>
</TableLayout>

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="90dp"
    android:layout_gravity="bottom" >

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <ImageView
            android:id="@+id/text11"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_marginLeft="50dip"
            android:layout_marginTop="0dp"
            android:background="@drawable/icon" />

        <TextView
            android:layout_width="30dp"
            android:layout_height="20dp"
            android:layout_marginLeft="05dp"
            android:layout_marginTop="05dp"
            android:text="30&apos;C" />

        <ImageView
            android:id="@+id/text12"
            android:layout_width="30dp"
            android:layout_height="20dp"
            android:layout_marginLeft="120dip"
            android:layout_marginTop="30dp"
            android:background="@drawable/battery"
            android:textSize="10dp" />

        <TextView
            android:layout_width="30dp"
            android:layout_height="20dp"
            android:layout_marginLeft="8dp"
            android:layout_marginTop="30dp"
            android:text="70%" />

        <ImageView
            android:id="@+id/text13"
            android:layout_width="30dp"
            android:layout_height="20dp"
            android:layout_marginLeft="105dip"
            android:layout_marginTop="30dp"
            android:background="@drawable/fuel"
            android:textSize="10dp" />

        <TextView
            android:layout_width="30dp"
            android:layout_height="20dp"
            android:layout_marginLeft="8dp"
            android:layout_marginTop="30dp"
            android:text="25L" />
    </TableRow>
</TableLayout>

这是我的java代码

  public class ClustersActivity extends Activity {
/** Called when the activity is first created. */
// ViewFlipper vf;
ImageView img, img1, rightindicator, pointer1, pointer2;
Bitmap bitmap;
Matrix matrix = new Matrix();
private IMyRemoteService remoteService;
private boolean started = false;
private RemoteServiceConnection conn = null;
private Handler serviceHandler;
private int enginRPM;
private int batteryLevel;
private int temperature;
private static int speed;
private Task myTask = new Task();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.cluster);
    getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();
    startService();
    bindService();
    System.gc();
    bitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.meat_speedometer_needle01);
    rightindicator = (ImageView) findViewById(R.id.rightindicator);
    img = (ImageView) findViewById(R.id.meter);
    img1 = (ImageView) findViewById(R.id.rpm);
    pointer1 = (ImageView) findViewById(R.id.pointer1);

    pointer1.setImageBitmap(bitmap);
    pointer1.setScaleType(ScaleType.CENTER);
    pointer1.setVisibility(View.VISIBLE);
    pointer2 = (ImageView) findViewById(R.id.pointer2);
    pointer2.setImageBitmap(bitmap);
    pointer2.setScaleType(ScaleType.CENTER);
    pointer2.setVisibility(View.VISIBLE);

    final Animation fadein = AnimationUtils.loadAnimation(this,
            R.anim.fade_in);
    final Animation fadeout = AnimationUtils.loadAnimation(this,
            R.anim.fade_out);
    // rightindicator.startAnimation(animationScale);
    rightindicator.startAnimation(fadein);
    rightindicator.startAnimation(fadeout);
    serviceHandler = new Handler();
    serviceHandler.postDelayed(myTask, 1000L);
}

【问题讨论】:

  • 你能把你的java类发布到你膨胀这个xml的地方吗?
  • android:background="@+id/meter" 这行给出错误
  • @Andro Selva,我发布了java代码。
  • android:background="@+id/meter" 这是你的问题,因为它已经被建议了。
  • @V.J.您应该将其添加为我的朋友的答案。你是对的。

标签: android xml layout-inflater forceclose


【解决方案1】:

使用drawable 代替@+id

   android:background="@drawable/meter" 

【讨论】:

  • 谢谢,但我的可绘制文件夹中没有任何名为meter的图像,让我试试。
  • @Raghav 您是否尝试将第一个 ImageView 的 src 设置为 Second ImageView 呢?
  • @Andro Selva 不,我有两个图像视图,一个在另一个之上,下面的图像是速度计图像,上一个是图像视图(它用于针),我在代码中动态设置位图,所以我把 undeneath 图像作为背景(android:background="@+id/meter")
  • 是不是走错路了?我在做什么。你能建议我应该在那里替换什么代码
  • @Andro Selva ,我有这条线是为了将指针保持在速度计图像的中心,如果我移除这条线,它将被移到某个位置而不是速度计的中心
【解决方案2】:

android:background="@+id/meter" 行是问题所在。

【讨论】:

  • 谢谢,请参阅萨米尔答案下方的 cmets。我不一致地收到此错误。前几周它工作正常,但现在不行
  • “@+id/meter”的背景是“@drawable/background”那为什么不给“@+id/pointer1”同样的背景..?跨度>
  • 如果我这样做了,我无法动态地将位图加载到该 Imageview,我正在将位图加载到该 imageview,即 @+id/pointer1
  • 如果您能够将位图动态设置为仪表,那么您也可以对指针执行相同操作...
  • 不,我没有将任何位图加载到仪表,它唯一的背景图像
【解决方案3】:

修复错误:

在清单中:

<application
        android:largeHeap="true"

在 .xml 文件中,您必须删除以下代码:

android:src="@drawable..
android:background="@drawable...

因为错误是内存不足错误。您应该查看处理内存的代码

【讨论】:

    猜你喜欢
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 2011-04-10
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    相关资源
    最近更新 更多