2012-08-13 68 views
0

我收到来自用户在Google play上的错误报告中的报告。我从来没有在我的手机galaxy s2 i9100和其他Android手机上遇到这个错误。二进制XML文件行#39:错误膨胀类<unknown>

java.lang.RuntimeException: Unable to start activity ComponentInfo{AnantApps.Moodlytics/anantapps.moodlytics.ui.WhatsNewSlideshow}: android.view.InflateException: Binary XML file line #39: Error inflating class <unknown> 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995) 
at android.app.ActivityThread.access$600(ActivityThread.java:128) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4514) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: android.view.InflateException: Binary XML file line #39: Error inflating class <unknown> 
at android.view.LayoutInflater.createView(LayoutInflater.java:606) 
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:742) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:742) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:742) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
at anantapps.moodlytics.ui.WhatsNewSlideshow.setupSlideShow(WhatsNewSlideshow.java:106) 
at anantapps.moodlytics.ui.WhatsNewSlideshow.initViews(WhatsNewSlideshow.java:87) 
at anantapps.moodlytics.ui.WhatsNewSlideshow.onCreate(WhatsNewSlideshow.java:55) 
at android.app.Activity.performCreate(Activity.java:4470) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934) 
... 11 more 
Caused by: java.lang.reflect.InvocationTargetException 
at java.lang.reflect.Constructor.constructNative(Native Method) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
at android.view.LayoutInflater.createView(LayoutInflater.java:586) 
... 27 more 
Caused by: java.lang.OutOfMemoryError 
at android.graphics.Bitmap.nativeCreate(Native Method) 
at android.graphics.Bitmap.createBitmap(Bitmap.java:605) 
at android.graphics.Bitmap.createBitmap(Bitmap.java:551) 
at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:437) 
at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:618) 
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:593) 
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:445) 
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:775) 
at android.content.res.Resources.loadDrawable(Resources.java:1968) 
at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
at android.widget.ImageView.<init>(ImageView.java:119) 
at android.widget.ImageView.<init>(ImageView.java:109) 
... 30 more 

有些时候用户也报告这种错误,但我没有重现它。

java.lang.OutOfMemoryError 
at android.graphics.Bitmap.nativeCreate(Native Method) 
at android.graphics.Bitmap.createBitmap(Bitmap.java:605) 
at android.graphics.Bitmap.createBitmap(Bitmap.java:551) 
at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:437) 
at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:618) 
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:593) 
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:445) 
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:775) 
at android.content.res.Resources.loadDrawable(Resources.java:1968) 
at android.content.res.Resources.getDrawable(Resources.java:677) 
at android.widget.ImageView.resolveUri(ImageView.java:542) 
at android.widget.ImageView.setImageResource(ImageView.java:315) 
at anantapps.moodlytics.ui.WhatsNewSlideshow.setupSlideShow(WhatsNewSlideshow.java:118) 
at anantapps.moodlytics.ui.WhatsNewSlideshow.initViews(WhatsNewSlideshow.java:87) 
at anantapps.moodlytics.ui.WhatsNewSlideshow.onCreate(WhatsNewSlideshow.java:55) 
at android.app.Activity.performCreate(Activity.java:4470) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995) 
at android.app.ActivityThread.access$600(ActivityThread.java:128) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4514) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747) 
at dalvik.system.NativeStart.main(Native Method) 
在活动

,我的功能是这样的....

private void setupSlideShow(ArrayList<String> titles, ArrayList<String> desc) { 

    realViewSwitcher = (HorizontalPager) findViewById(R.id.horizontalPager); 
    realViewSwitcher.removeAllViews(); 

    LayoutInflater inflater = getLayoutInflater(); 

    for (int i = 0; i < titles.size(); i++) { 

     View v = inflater.inflate(R.layout.whats_new_slide_show_item, null); 
     TextView titleTV = (TextView) v 
       .findViewById(R.id.whats_new_item_title); 
     titleTV.setTypeface(CommonFunctions.getBold(getContext())); 
     titleTV.setText(titles.get(i)); 

     TextView descTV = (TextView) v 
       .findViewById(R.id.whats_new_item_desc); 
     descTV.setTypeface(CommonFunctions.getNormal(getContext())); 
     descTV.setText(desc.get(i)); 

     ImageView img = (ImageView) v.findViewById(R.id.img_whats_slide); 
     img.setImageResource(imgResources.get(i)); 

     realViewSwitcher.addView(v); 

    } 

    realViewSwitcher.setOnScreenSwitchListener(onScreenSwitchListener); 

} 

whats_new_slide_show_item.xml

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="10dp" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center_horizontal" 
      android:orientation="vertical" > 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:paddingBottom="5dp" 
       android:paddingLeft="10dp" > 

       <TextView 
        android:id="@+id/whats_new_item_title" 
        style="@style/whats_new_title" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Large Text" /> 
      </LinearLayout> 

      <ImageView 
       android:id="@+id/img_whats_slide" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/bug_fixes" /> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:paddingLeft="10dp" 
       android:paddingTop="3dp" > 

       <TextView 
        android:id="@+id/whats_new_item_desc" 
        style="@style/whats_new_desc" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Medium Text" /> 
      </LinearLayout> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

whats_new_slide_show.xml

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    android:id="@+id/whats_new_slides_container" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/bar_bg" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/whats_new_header" 
     style="@style/TopBarTitle" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="@string/whats_new_title" /> 

    <LinearLayout 
     android:layout_width="2dp" 
     android:layout_height="match_parent" 
     android:background="@drawable/seperator_whats_new" > 
    </LinearLayout> 

    <Button 
     android:id="@+id/btn_next_slide" 
     style="@style/Whats_new_btn" 
     android:layout_width="65dp" 
     android:layout_height="match_parent" 
     android:background="@drawable/whats_new_next_btn" 
     android:gravity="center" 
     android:paddingLeft="10dp" 
     android:paddingRight="10dp" 
     android:text="@string/btn_next" /> 
</LinearLayout> 

<LinearLayout 
    android:id="@+id/whats_new_slides_container" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:background="@color/tra_white_ninety" > 

    <anantapps.moodlytics.view.HorizontalPager 
     android:id="@+id/horizontalPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
    </anantapps.moodlytics.view.HorizontalPager> 
</LinearLayout> 

+0

请添加布局代码 – Mike 2012-08-13 09:16:50

回答

0

我已经跑进了memmory错误的,所以我会尽量告诉有关。

事情你应该尝试:

1)在暂停清除资源的开发(System.gc();Runtime.getRuntime().gc();)或销毁之前的活动。

2)(这是我的问题)确保你的图像很大,因为你的应用运行或支持的bigest屏幕(我有两个分辨率为1000x486的设计元素,它使我没有内存错误)。

+0

谢谢你的answer.but System.gc()不清除资源我的朋友:) – 2012-08-13 12:33:55

+0

好吧我frogot,它告诉运行'垃圾收集器' – J1and1 2012-08-13 13:01:11

1

它看起来像你试图预载你的幻灯片的所有图像。如果您重新设计应用程序以仅在查看图像时才加载图像,则它的内存使用量峰值将少得多,这将有助于避免内存不足问题。

相关问题