I had a simple android app. But everytime i click "Share" Button, it crashes with this error log:
E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 5817316)
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.websitebeaver.documentscanner.demo, PID: 8827
java.lang.RuntimeException: Failure from system
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1711)
at android.app.Activity.startActivityForResult(Activity.java:5192)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:597)
at android.app.Activity.startActivityForResult(Activity.java:5150)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:583)
at android.app.Activity.startActivity(Activity.java:5521)
at android.app.Activity.startActivity(Activity.java:5489)
at com.websitebeaver.documentscanner.demo.MainActivity.onCreate$lambda-0(MainActivity.kt:73)
at com.websitebeaver.documentscanner.demo.MainActivity.$r8$lambda$b_e-1CZpbkFu7HYhPCCRZslWl60(Unknown Source:0)
at com.websitebeaver.documentscanner.demo.MainActivity$$ExternalSyntheticLambda0.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7125)
at android.view.View.performClickInternal(View.java:7102)
at android.view.View.access$3500(View.java:801)
at android.view.View$PerformClick.run(View.java:27336)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Caused by: android.os.TransactionTooLargeException: data parcel size 5817316 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(BinderProxy.java:510)
at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:3847)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1705)
at android.app.Activity.startActivityForResult(Activity.java:5192)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:597)
at android.app.Activity.startActivityForResult(Activity.java:5150)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:583)
at android.app.Activity.startActivity(Activity.java:5521)
at android.app.Activity.startActivity(Activity.java:5489)
at com.websitebeaver.documentscanner.demo.MainActivity.onCreate$lambda-0(MainActivity.kt:73)
at com.websitebeaver.documentscanner.demo.MainActivity.$r8$lambda$b_e-1CZpbkFu7HYhPCCRZslWl60(Unknown Source:0)
at com.websitebeaver.documentscanner.demo.MainActivity$$ExternalSyntheticLambda0.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7125)
at android.view.View.performClickInternal(View.java:7102)
at android.view.View.access$3500(View.java:801)
at android.view.View$PerformClick.run(View.java:27336)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
I/Process: Sending signal. PID: 8827 SIG: 9
Thats the code:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// cropped image
croppedImageView = findViewById(R.id.cropped_image_view)
//val imageUrl = croppedImageView.getTag(R.id.cropped_image_view)?.toString()
shareBtn = findViewById(R.id.shareBtn)
shareBtn.setOnClickListener {
val intent= Intent(Intent.ACTION_SEND)
//intent.putExtra(Intent.EXTRA_TEXT,"Hey Check out this Great app:")
//intent.type="text/plain"
intent.putExtra(Intent.EXTRA_STREAM, imageViewToPdf(croppedImageView))
intent.type = "application/pdf"
startActivity(Intent.createChooser(intent, null))
}
// start document scan
documentScanner.startScan()
}
fun imageViewToPdf(imageView: ImageView): String? {
val bitmap = Bitmap.createBitmap(imageView.width, imageView.height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
imageView.draw(canvas)
val document = PdfDocument()
val page = document.startPage(PdfDocument.PageInfo.Builder(bitmap.width, bitmap.height, 1).create())
page.canvas.drawBitmap(bitmap, 0f, 0f, null)
document.finishPage(page)
val outputStream = ByteArrayOutputStream()
document.writeTo(outputStream)
document.close()
val pdfData = outputStream.toByteArray()
return "data:application/pdf;base64," + android.util.Base64.encodeToString(pdfData, android.util.Base64.DEFAULT)
}
Any ideas why? I searched for it but didnt find a solution why this error comes... Probably something in imageViewToPDF?
The App takes an image and i want to change it to pdf and than wanna share the PDF uri