1

In my Application i use 54 images.in order to support multiple screen i create folders like this

drawable-hdpi
drawable-mdpi
drawable-xdpi
drawable-mdpi

and paste all the images in each of the folder.due to this the application size is increased a lot.... then i try to like this way... take only one folder drawable keep all 54 images in that delete all your drawabl-mdpi,drawable-hdpi,drawable-mdpi and drawable-xdpi folders . In my Manifest file i mensioned as

"<supports-screens 
android:anyDensity="true" 
android:largeScreens="true" 
android:normalScreens="true" 
android:resizeable="true" 
android:smallScreens="true" />"

but it give me errors like this

07-25 15:04:25.928: ERROR/dalvikvm-heap(13963): 2764800-byte external allocation too large for this process.
07-25 15:04:25.928: ERROR/GraphicsJNI(13963): VM won't let us allocate 2764800 bytes
07-25 15:04:25.928: DEBUG/AndroidRuntime(13963): Shutting down VM
07-25 15:04:25.928: WARN/dalvikvm(13963): threadid=1: thread exiting with uncaught exception (group=0x4001d7e0)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963): FATAL EXCEPTION: main
07-25 15:04:25.967: ERROR/AndroidRuntime(13963): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jacksonville.alenseventapp/com.jacksonville.alenseventapp.HomeActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class <unknown>
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.os.Looper.loop(Looper.java:123)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.app.ActivityThread.main(ActivityThread.java:4627)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at java.lang.reflect.Method.invokeNative(Native Method)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at java.lang.reflect.Method.invoke(Method.java:521)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at dalvik.system.NativeStart.main(Native Method)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963): Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class <unknown>
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.view.LayoutInflater.createView(LayoutInflater.java:513)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.app.Activity.setContentView(Activity.java:1647)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at com.jacksonville.alenseventapp.HomeActivity.onCreate(HomeActivity.java:12)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     ... 11 more
07-25 15:04:25.967: ERROR/AndroidRuntime(13963): Caused by: java.lang.reflect.InvocationTargetException
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.widget.LinearLayout.<init>(LinearLayout.java:115)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at java.lang.reflect.Constructor.constructNative(Native Method)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.view.LayoutInflater.createView(LayoutInflater.java:500)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     ... 21 more
07-25 15:04:25.967: ERROR/AndroidRuntime(13963): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.graphics.Bitmap.nativeCreate(Native Method)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.graphics.Bitmap.createBitmap(Bitmap.java:468)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.graphics.Bitmap.createBitmap(Bitmap.java:435)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:340)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:488)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:462)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:323)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.content.res.Resources.loadDrawable(Resources.java:1709)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.view.View.<init>(View.java:1885)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.view.View.<init>(View.java:1834)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     at android.view.ViewGroup.<init>(ViewGroup.java:285)
07-25 15:04:25.967: ERROR/AndroidRuntime(13963):     ... 25 more

if any body know about this plz help me...

MBMJ
  • 5,323
  • 8
  • 32
  • 51
Venkat
  • 3,447
  • 6
  • 42
  • 61

1 Answers1

3

There are main four errors in your application

java.lang.RuntimeException: Unable to start activity 
   **ComponentInfo{com.jacksonville.alenseventapp/com.
   jacksonville.alenseventapp.HomeActivity}:

and

** android.view.InflateException: Binary XML file line #1:
       Error inflating class <unknown>
       07-25 15:04:25.967: ERROR/AndroidRuntime(13963):    
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
        and 07-25 15:04:25.967: ERROR/AndroidRuntime(13963): Caused by: 
        android.view.InflateException: Binary XML file line #1: 
        Error inflating class <unknown>

These two errors suggest that you are referring to a package which does not exist this might be due to the tutorial you followed to do this code , you used package name of that code in you application

and third error

    07-25 15:04:25.967: ERROR/AndroidRuntime(13963): Caused by: 
java.lang.reflect.InvocationTargetException

see these questions also had the same issue

How to remove this error ? java.lang.reflect.InvocationTargetException

InvocationTargetException on inflating an xml - android

and also see this

http://developer.android.com/reference/java/lang/reflect/InvocationTargetException.html

and it is caused by being low on memory

Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

to avoid this you can use this method to display

// here path is from  where you are picking the image 



Bitmap myBitmap = ShrinkBitmap(Path, 300, 300);

MyImageView.setImageBitmap(myBitmap );


private Bitmap ShrinkBitmap(String file, int width, int height) {
        // TODO Auto-generated method stub
        BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
        bmpFactoryOptions.inJustDecodeBounds = true;
        Bitmap bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);

        int heightRatio = (int)Math.ceil(bmpFactoryOptions.outHeight/(float)height);
        int widthRatio = (int)Math.ceil(bmpFactoryOptions.outWidth/(float)width);

        if (heightRatio > 1 || widthRatio > 1)
        {
         if (heightRatio > widthRatio)
         {
          bmpFactoryOptions.inSampleSize = heightRatio;
         } else {
          bmpFactoryOptions.inSampleSize = widthRatio;
         }
        }

        bmpFactoryOptions.inJustDecodeBounds = false;
        bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);
     return bitmap;
    }
Community
  • 1
  • 1
Avi Kumar
  • 4,403
  • 8
  • 36
  • 67
  • drawable-hdpi drawable-mdpi drawable-xdpi drawable-mdpi if i follow this approach i donot get any error but the problem is the apk size is near to 8mb – Venkat Jul 26 '12 at 06:56
  • " the problem is the apk size is near to 8mb " what is the problem int this – Avi Kumar Jul 26 '12 at 06:59
  • venkat the application might take time to install but once install its processing shall be fine – Avi Kumar Jul 26 '12 at 07:14