Posts

Showing posts from January, 2019

How to Enable Multidex for Android App

The number of methods an Android app can have is limited to 65,536 (64 * 1024). Once the limit is crossed, the app builds fail with an error that says Cannot fit requested classes in a single dex file . AGPBI: {"kind":"error","text":"Cannot fit requested classes in a single dex file (# methods: 76137 \u003e 65536)","sources":[{}],"tool":"D8"} > Task :app:transformDexArchiveWithDexMergerForDebug FAILED java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K. To continue adding methods beyond the infamous 64k method limit, we need to enable multidex in our application. Let's get started. 1) Add the dependency to module level build.gradle file. implementation 'com.android.support:multidex:1.0.3' 2) In the same module level build.gradle

How to Generate Android App Bundle (Signed and Debug)

Image
App Bundle reduces the number of Android apks that needs to be generated, released and maintained. It is the new format that is build and uploaded to the Google Play Store. Google takes the bundle, generates appropriate apks based on the device architectures, screen densities, device languages and serves to the device as a part of Dynamic Delivery. As a first step, lets generate a debug version of the app bundle and after that lets take a look at generating a released version of the app bundle. Generated app bundles are in .aab format. Generate Debug Version: 1) Click on the Build  menu option at the top, select the Build Bundle(s)/APK(s) and click Build Bundle(s) . Debug app bundle is generated and saved to ../app/build/outputs/bundle/debug/app.aab. Generate Release Version: 1) Similar to the step followed while generating a debug version, click on the Build menu option. 2) It opens a dialog with options to build a bundle or an apk. Select the Android

How to Migrate to AndroidX

Image
In this article, we will refactor an existing support library project to Androidx. The package names, dependency names change and rest (like class names, method names) stays the same. 1) Click Refactor and then Migrate to AndroidX. 2) Click Migrate and make sure the back up option is selected. 3) Provide a location to save the backup of the entire project. 4) Verify the dependencies, the package names that are getting refactored and then finally Click Refactor. Once finished, you can see the updated package names and dependency names. In addition to that, the Refactor option adds android.useAndroidX=true and android.enableJetifier=true to gradle.properties file. This converts the support library package names of the non-convert third-party libraries. This process is fairly simple but there might be issues faced and the refactor may fail, so backing up the project or tracking the changes using git is necessary to avoid the project loss.

How to Migrate to Material Components (MDC)

Image
Material Components (MDC) is built by developers at Google (separate from the Android team) with intentions of helping developers build Material Design in their web and mobile-based apps. This is the next iteration of Material Design released in 2014. Follow the steps mentioned below to migrate the app to use the Material Design Components instead of AppCompat or default UI components. 1) Add the Material Components dependency to the module level build.gradle file. implementation 'com.google.android.material:material:1.1.0-alpha02' 2) In the styles.xml Replace AppCompat with MaterialComponents . If you performed the action successfully then your base application theme will look like this.     <!-- Base application theme. -->     <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">         <item name="colorPrimary">@color/colorPrimary</item>         <item name="colorPrimaryDar

Intro to Activity and Its Lifecycle

Image
Activity is one of the four components of Android and it provides an interface to the user so that they can interact with the views. Simply, activity is a single screen in an app. It could be a maps screen in the Google Maps app or user profiles in the Facebook app or contacts list screen in the Contacts app and settings screen in the Settings app. Most apps contain multiple screens and inside these screens, you have buttons, edit texts, check boxes, list items and more with which you can interact. Activities should be declared in the manifest file and of all the activities in an app, only one activity will be the launcher activity. How to create an Activity: 1) Right click on the app module, hover over New  option and then on the Activity . 2) Now, select the Basic Activity  and change the activity name to Second Activity . 3) Click Finish to create the  Second Activity . You'll see one method is overridden it's named onCreate . The activity is auto