Android主页按钮单击崩溃应用程序

时间:2014-09-19 05:09:18

标签: java android android-layout android-activity

我正在开发一个应用程序,其中我遇到了一个奇怪的问题。该应用程序工作正常,但当用户点击设备的主页按钮时,应用程序崩溃会发出以下错误。

logcat的 **

09-19 10:45:33.989: W/ResourceType(4263): Failure getting entry for 0x7f0a0017 (t=9 e=23) in package 0 (error -75)
09-19 10:45:33.989: D/AndroidRuntime(4263): Shutting down VM
09-19 10:45:33.989: W/dalvikvm(4263): threadid=1: thread exiting with uncaught exception (group=0x41615d88)
09-19 10:45:34.039: E/AndroidRuntime(4263): FATAL EXCEPTION: main
09-19 10:45:34.039: E/AndroidRuntime(4263): Process: com.squarespix.MobieAlert, PID: 4263
09-19 10:45:34.039: E/AndroidRuntime(4263): android.view.InflateException: Binary XML file line #7: Error inflating class <unknown>
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.LayoutInflater.createView(LayoutInflater.java:620)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at com.squarespix.MobieAlert.PostsGridAdapter.getView(PostsGridAdapter.java:134)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.widget.AbsListView.obtainView(AbsListView.java:2263)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.widget.GridView.onMeasure(GridView.java:1048)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.View.measure(View.java:16628)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.View.measure(View.java:16628)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.View.measure(View.java:16628)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.View.measure(View.java:16628)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2295)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.View.measure(View.java:16628)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1920)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1117)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1299)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5703)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.Choreographer.doCallbacks(Choreographer.java:574)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.Choreographer.doFrame(Choreographer.java:544)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.os.Handler.handleCallback(Handler.java:743)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.os.Looper.loop(Looper.java:136)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.app.ActivityThread.main(ActivityThread.java:5212)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at java.lang.reflect.Method.invokeNative(Native Method)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at java.lang.reflect.Method.invoke(Method.java:515)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at dalvik.system.NativeStart.main(Native Method)
09-19 10:45:34.039: E/AndroidRuntime(4263): Caused by: java.lang.reflect.InvocationTargetException
09-19 10:45:34.039: E/AndroidRuntime(4263):     at java.lang.reflect.Constructor.constructNative(Native Method)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.view.LayoutInflater.createView(LayoutInflater.java:594)
09-19 10:45:34.039: E/AndroidRuntime(4263):     ... 43 more
09-19 10:45:34.039: E/AndroidRuntime(4263): Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x1
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:464)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.widget.TextView.<init>(TextView.java:979)
09-19 10:45:34.039: E/AndroidRuntime(4263):     at android.widget.TextView.<init>(TextView.java:625)
09-19 10:45:34.039: E/AndroidRuntime(4263):     ... 46 more


**


if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) this.context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        boolean hasBackKey = KeyCharacterMap
                .deviceHasKey(KeyEvent.KEYCODE_BACK);
        boolean hasHomeKey = KeyCharacterMap
                .deviceHasKey(KeyEvent.KEYCODE_HOME);
        // try{
        if ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {
            v = inflater.inflate(R.layout.layout_single_post,parent,
                    false);
        } else if ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {
            if (hasBackKey && hasHomeKey) {
                v = inflater.inflate(
                        R.layout.layout_single_post_hwkeys, parent,false);
            } else {
                v = inflater.inflate(R.layout.layout_single_post,parent,false);//Line 134
            }
        }
    }
    else
    {
        v=convertView;
    }

我们正在使用这段代码来检查设备是否具有屏幕或硬件导航栏并相应地设置布局。这是正确的方法吗?它导致了这个问题吗?

我的xml for layout_single_post就在这里

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/date"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:textColor="#000000"
    android:textSize="@dimen/single_post_date_size" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/postImage"
        android:layout_width="@dimen/single_post_postimage_width"
        android:layout_height="@dimen/single_post_postimage_height"
        android:layout_marginLeft="@dimen/single_post_postimage_margin_left"
        android:contentDescription="@string/single_post_post_image"
        android:scaleType="fitXY"
        android:src="@drawable/nophoto" />

    <LinearLayout
        android:id="@+id/imagesLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/single_post_images_layout_margin_left"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/healthImage"
            android:layout_width="@dimen/single_post_health_image_width"
            android:layout_height="@dimen/single_post_health_image_height"
            android:layout_marginBottom="@dimen/single_post_health_margin_btm"
            android:contentDescription="@string/single_post_health_status_image"
            android:scaleType="fitXY"
            android:src="@drawable/health_status" />

        <ImageView
            android:id="@+id/googelMapImage"
            android:layout_width="@dimen/single_post_map_image_width"
            android:layout_height="@dimen/single_post_map_image_height"
            android:layout_marginTop="@dimen/single_post_map_margin_top"
            android:contentDescription="@string/single_post_google_map_image"
            android:scaleType="fitXY"
            android:src="@drawable/google_map_icon" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/userLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/profileImage"
            android:layout_width="@dimen/single_post_profile_image_width"
            android:layout_height="@dimen/single_post_profile_image_height"
            android:layout_marginLeft="@dimen/single_post_profile_image_margin_left"
            android:contentDescription="@string/single_post_profile_image"
            android:src="@drawable/profileimage" />

        <TextView
            android:id="@+id/tv_name"
            android:layout_width="@dimen/single_post_username_width"
            android:layout_height="@dimen/single_post_username_height"
            android:gravity="center_horizontal"
            android:textColor="#000000"
            android:textSize="@dimen/single_post_username_textsize" />
    </LinearLayout>
</LinearLayout>

<TextView
    android:id="@+id/tv_desc"
    android:layout_width="@dimen/single_post_description_width"
    android:layout_height="@dimen/single_post_description_height"
    android:layout_marginBottom="@dimen/single_post_description_margin_bottom"
    android:layout_marginLeft="@dimen/single_post_description_margin_left"
    android:layout_marginTop="@dimen/single_post_description_margin_top"
    android:textColor="#000000"
    android:textSize="@dimen/single_post_description_text_size" />

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

问题解决了。感谢@Zhuinden这就是原因,没有资源标识符的values文件夹中没有放置默认尺寸。在以下链接中给出了相同的内容。这也可能有助于其他人。 Provide Default dimens