- Posts: 10
- Thank you received: 0
Microsoft Windows Phone 8.1 support ends (13 Jul 2017)
Microsoft has ended support for Windows Phone 8.1
Questions about Android development and PDF
Too many Out of Memory exceptions
10 years 8 months ago #9243
by dashti
Too many Out of Memory exceptions was created by dashti
We received too many out of memory exceptions with PDFView, so we updated our application to use the new PDFLayout class. However, we still receive such exceptions as I have copied below
Is there any way to fix this problem or this is a weakness of Radaee?
Code:
java.lang.OutOfMemoryError
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:669)
at android.graphics.Bitmap.createBitmap(Bitmap.java:649)
at com.radaee.view.PDFLayout.vResize(SourceFile:122)
at com.radaee.reader.PDFLayoutView.onSizeChanged(SourceFile:333)
at android.view.View.setFrame(View.java:14002)
at android.view.View.layout(View.java:13914)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:948)
at android.view.View.layout(View.java:13916)
at android.view.ViewGroup.layout(ViewGroup.java:4424)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:13916)
at android.view.ViewGroup.layout(ViewGroup.java:4424)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
at android.view.View.layout(View.java:13916)
at android.view.ViewGroup.layout(ViewGroup.java:4424)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:13916)
at android.view.ViewGroup.layout(ViewGroup.java:4424)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2029)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1850)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1143)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4667)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
at android.view.Choreographer.doCallbacks(Choreographer.java:555)
at android.view.Choreographer.doFrame(Choreographer.java:525)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4960)
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:1038)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
at dalvik.system.NativeStart.main(Native Method)
Is there any way to fix this problem or this is a weakness of Radaee?
10 years 8 months ago - 10 years 8 months ago #9245
by Davide
Replied by Davide on topic Too many Out of Memory exceptions
Hi,
can you please give us more details about that issue..
Can you reproduce this out of memory with all the pdfs? Can you please send us one to test it?
What version of the library are you using? Have you tried with the last beta version ?
Can you please give us your Global.java class?
can you please give us more details about that issue..
Can you reproduce this out of memory with all the pdfs? Can you please send us one to test it?
What version of the library are you using? Have you tried with the last beta version ?
Can you please give us your Global.java class?
Last edit: 10 years 8 months ago by Davide.
10 years 8 months ago - 10 years 8 months ago #9246
by radaee
Replied by radaee on topic Too many Out of Memory exceptions
it seems, u are using lots Bitmap object out of PDFView class and PDFLayout class
a bitmap same to View size is needed for 1 PDFView or PDFLayout.
mostly, costs about 1920 * 1080 * 4 bytes.
others: not invoked PDFReader.PDFClose() when close View or reopen a View,
or not invoked PDFLayoutView.PDFClose().
a bitmap same to View size is needed for 1 PDFView or PDFLayout.
mostly, costs about 1920 * 1080 * 4 bytes.
others: not invoked PDFReader.PDFClose() when close View or reopen a View,
or not invoked PDFLayoutView.PDFClose().
Last edit: 10 years 8 months ago by radaee.
10 years 8 months ago - 10 years 8 months ago #9248
by dashti
Replied by dashti on topic Too many Out of Memory exceptions
Actually, I can't give you a specific file which has this problem, since we use a crash report system which tells us how many crashes occur in our app and I don't know which crash has occurred with opening of which file. But an interesting point is that this kind of exception mostly occurs in Samsung devices.
I am using SDK 3.4, but I have not tested the beta version of 3.5 since that is under android studio.
I have not modified Global.java at all. That's the same file in SDK 3.4, I just call Global.init() to set my license info.
FYI, this is a second trace of exception I receive from Radaee.
I am using SDK 3.4, but I have not tested the beta version of 3.5 since that is under android studio.
I have not modified Global.java at all. That's the same file in SDK 3.4, I just call Global.init() to set my license info.
FYI, this is a second trace of exception I receive from Radaee.
Code:
java.lang.OutOfMemoryError
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:726)
at android.graphics.Bitmap.createBitmap(Bitmap.java:703)
at android.graphics.Bitmap.createBitmap(Bitmap.java:670)
at com.radaee.view.VPage.vZoomStart(SourceFile:369)
at com.radaee.view.PDFLayout.vZoomStart(SourceFile:289)
at com.radaee.reader.PDFLayoutView.onTouchNone(SourceFile:615)
at com.radaee.reader.PDFLayoutView.onTouchEvent(SourceFile:999)
at ir.mservices.mybook.reader.pdf.layout.MyPDFLayoutView.onTouchEvent(SourceFile:109)
at android.view.View.dispatchTouchEvent(View.java:7822)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2441)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2174)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2326)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1612)
at android.app.Activity.dispatchTouchEvent(Activity.java:2494)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2274)
at android.view.View.dispatchPointerEvent(View.java:8030)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4574)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4462)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4056)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4113)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4082)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4167)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4090)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4224)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4056)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4113)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4082)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4090)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4056)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6224)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6154)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6125)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6304)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:188)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:132)
at android.os.Looper.loop(Looper.java:138)
at android.app.ActivityThread.main(ActivityThread.java:5493)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1225)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1041)
at dalvik.system.NativeStart.main(Native Method)
Last edit: 10 years 8 months ago by dashti.
10 years 8 months ago #9253
by radaee
Replied by radaee on topic Too many Out of Memory exceptions
it can upgrade your eclipse project in this way:
copy JNI libs from last beta version in dir "PDFSample/ViewLib/src/main/jniLibs"
copy resources folder from "PDFSample/ViewLib/src/main/res/raw" to your "res" dir, after this u shall has "res/raw"
copy java codes from "PDFSample/ViewLib/src/main/java/com/radaee/pdf"
copy java codes from "PDFSample/ViewLib/src/main/java/com/radaee/view"
copy java codes from "PDFSample/ViewLib/src/main/java/com/radaee/util"
version 3.4 not auto-relase some objects, u shall free allocated memory manually.
for example:
PDFThumbView.thumbClose();
PDFReader,PDFClose();
Document.Close();
while 3.5 beta override "finalize" method, and can auto-release memory allocated by native lib by GC.
copy JNI libs from last beta version in dir "PDFSample/ViewLib/src/main/jniLibs"
copy resources folder from "PDFSample/ViewLib/src/main/res/raw" to your "res" dir, after this u shall has "res/raw"
copy java codes from "PDFSample/ViewLib/src/main/java/com/radaee/pdf"
copy java codes from "PDFSample/ViewLib/src/main/java/com/radaee/view"
copy java codes from "PDFSample/ViewLib/src/main/java/com/radaee/util"
version 3.4 not auto-relase some objects, u shall free allocated memory manually.
for example:
PDFThumbView.thumbClose();
PDFReader,PDFClose();
Document.Close();
while 3.5 beta override "finalize" method, and can auto-release memory allocated by native lib by GC.
Time to create page: 0.412 seconds