Click here to Skip to main content
15,868,054 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I am working on a android application project using xampp(service.php and mysql database). When I am compiling the application the emulator shows app has stopped. When I saw the run tab the following below errors show up. I don't know how solve this issue. and don't know where the error is occurring. I am seeking help from you guys. Thanks in advanced.

Error:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.project.newsapp, PID: 27328
java.lang.RuntimeException: Canvas: trying to draw too large(309746632bytes) bitmap.
    at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:229)
    at android.view.RecordingCanvas.drawBitmap(RecordingCanvas.java:97)
    at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:529)
    at android.widget.ImageView.onDraw(ImageView.java:1367)
    at android.view.View.draw(View.java:19123)
    at android.view.View.updateDisplayListIfDirty(View.java:18073)
    at android.view.View.draw(View.java:18851)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4214)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4000)
    at android.view.View.updateDisplayListIfDirty(View.java:18064)
    at android.view.View.draw(View.java:18851)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4214)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4000)
    at android.view.View.updateDisplayListIfDirty(View.java:18064)
    at android.view.View.draw(View.java:18851)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4214)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4000)
    at android.view.View.updateDisplayListIfDirty(View.java:18064)
    at android.view.View.draw(View.java:18851)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4214)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4000)
    at android.view.View.updateDisplayListIfDirty(View.java:18064)
    at android.view.View.draw(View.java:18851)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4214)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4000)
    at android.view.View.updateDisplayListIfDirty(View.java:18064)
    at android.view.View.draw(View.java:18851)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4214)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4000)
    at android.view.View.updateDisplayListIfDirty(View.java:18064)
    at android.view.View.draw(View.java:18851)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4214)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4000)
    at android.view.View.draw(View.java:19126)
    at com.android.internal.policy.DecorView.draw(DecorView.java:785)
    at android.view.View.updateDisplayListIfDirty(View.java:18073)
    at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:643)
    at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:649)
    at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:757)
    at android.view.ViewRootImpl.draw(ViewRootImpl.java:2980)
    at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2794)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2347)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1386)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6733)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
    at android.view.Choreographer.doCallbacks(Choreographer.java:723)
    at android.view.Choreographer.doFrame(Choreographer.java:658)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6541)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)


My MainActivity.kt file code

Kotlin
package com.project.newsapp

import android.app.ProgressDialog
import android.content.Intent
import android.content.SharedPreferences
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.project.newsapp.contract.Request
import com.project.newsapp.contract.Response
import com.project.newsapp.network.IRequestContract
import com.project.newsapp.network.NetworkClient
import com.project.newsapp.utils.Constant
import com.project.newsapp.utils.showToast
import kotlinx.android.synthetic.main.activity_main.*
import retrofit2.Call
import retrofit2.Callback

class MainActivity : AppCompatActivity(), Callback<Response> {

    private val retrofitClient = NetworkClient.getNetworkClient()
    private val requestContract = retrofitClient.create(IRequestContract::class.java)
    private val progressDialog:ProgressDialog by lazy { ProgressDialog(this) }
    private val sharedPreferences:SharedPreferences by lazy { getSharedPreferences(Constant.PREF_NAME, MODE_PRIVATE) }
    lateinit var userName:String

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        progressDialog.setMessage("Please wait...")
        progressDialog.setCancelable(true)

        checkIfUserAlreadyRegistered()

        btnRegister.setOnClickListener {
            userName = edUserName.text.toString().trim().uppercase()
            if(userName.isNullOrEmpty()){
                showToast("Please Enter your Name")
            }else{
                progressDialog.show()
                val request = Request(
                    action = Constant.REGISTER_USER,
                    userName = userName
                )
                val callResponse = requestContract.makeApiCall(request)
                callResponse.enqueue(this)
            }
        }

        /*btnExit.setOnClickListener {
            finish()
        }*/
    }

    override fun onFailure(call: Call<Response>, t: Throwable) {
        if(progressDialog.isShowing)
            progressDialog.dismiss()

        showToast("Server is not responding. Please try again later.")
        edUserName.setText("")
    }

    override fun onResponse(call: Call<Response>, response: retrofit2.Response<Response>) {
        if(progressDialog.isShowing)
            progressDialog.dismiss()

        if(response.body()!=null){
            val serverResponse = response.body()
            if(serverResponse!!.status){
                saveUserToPref(serverResponse.userId,userName)
                Intent(this, HomeActivity::class.java).apply {
                    putExtra(Constant.KEY_USER_ID, serverResponse.userId)
                    putExtra(Constant.KEY_USER_NAME, userName)
                    startActivity(this)
                    finish()
                }
            }else{
                showToast(serverResponse.message)
                edUserName.setText("")
            }
        }
        else{
            showToast("Server is not responding. Please try again later.")
            edUserName.setText("")
        }
    }

    private fun saveUserToPref(userId:String, userName:String){
        val editor = sharedPreferences.edit()
        editor.putString(Constant.KEY_USER_ID,userId)
        editor.putString(Constant.KEY_USER_NAME,userName)
        editor.commit()
    }

    private fun checkIfUserAlreadyRegistered(){
        val userId = sharedPreferences.getString(Constant.KEY_USER_ID,"invalid user id")
        val userName = sharedPreferences.getString(Constant.KEY_USER_NAME,"invalid user name")

        if(!userId.contentEquals("invalid user id")
            && !userName.contentEquals("invalid user name")){
            Intent(this, HomeActivity::class.java).apply {
                putExtra(Constant.KEY_USER_ID, userId)
                putExtra(Constant.KEY_USER_NAME, userName)
                startActivity(this)
                finish()
            }
        }
    }
}


What I have tried:

I tried running HomeActivity as first screen, in that case app is working fine but when I make MainActivity the first screen it show app has stopped.
Posted
Comments
CoderzF1 16-Sep-22 0:57am    
sounds like you may need to scale down the bitmap dimensions

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900