According to the new policy of google play store,
Your app currently targets API level 30 and must target at least API level 31 to ensure >it is built on the latest APIs optimized for security and performance. Change your app's >target API level to at least 31.
After changing the target API to 31 and adding android:exported="true" my build was successful but now when I'm trying to run the apk in mobile or emulator, after splash screen the screen goes blank. App is not working.
My current working APK has following configurations
Ionic:
Ionic CLI : 5.4.16 (/home/ttpl-rt-58/.nvm/versions/node/v12.16.1/lib/node_modules/ionic)
Ionic Framework : @ionic/angular 5.7.0
@angular-devkit/build-angular : 0.901.15
@angular-devkit/schematics : 8.3.29
@angular/cli : 9.1.15
@ionic/angular-toolkit : 2.3.3
Cordova:
Cordova CLI : 11.0.0
Cordova Platforms : android 9.0.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.2.1, (and 47 other plugins)
Utility:
cordova-res : 0.15.4
native-run (update available: 1.7.0) : 1.6.0
System:
Android SDK Tools : 26.1.1 (/home/ttpl-rt-58/Android/Sdk)
NodeJS : v12.16.1 (/home/ttpl-rt-58/.nvm/versions/node/v12.16.1/bin/node)
npm : 8.19.1
OS : Linux 5.15
My build.gradle
defaultBuildToolsVersion="29.0.3"
defaultMinSdkVersion=22
defaultTargetSdkVersion=30
defaultCompileSdkVersion=30
My package.json
{
"name": "sunbirded-mobile-app",
"version": "0.0.1",
"author": "Ionic Framework",
"homepage": "https://ionicframework.com/",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"lint": "ng lint",
"e2e": "ng e2e",
"test": "jest",
"test:coverage": "jest --coverage",
"test:ci": "jest --ci --collectCoverage=true --coverageReporters=lcov --forceExit --detectOpenHandles --maxWorkers=2",
"ionic-build": "ng build --eval--source-map --configuration=$npm_config_angular_configuration && cordova build android",
"ionic-build:debug": "ng build --eval--source-map --configuration=$npm_config_angular_configuration && cordova build android --debug --buildConfig ./buildConfig/build.json",
"ionic-build:prod": "ionic cordova build android --configuration=$npm_config_angular_configuration --prod --release",
"ionic-serve": "ionic cordova run android --livereload --configuration=hmr",
"sonar-scanner": "sonar-scanner",
"sonar-scanner:scan": "sonar-scanner -Dsonar.host.url=http://127.0.0.1:9000 -Dsonar.login=$SONAR_LOGIN",
"ionic-build-ios:debug": "ng build --eval--source-map --configuration=$npm_config_angular_configuration && cordova run ios --debug"
},
"private": true,
"dependencies": {
"@angular-builders/custom-webpack": "^8.4.1",
"@angular-builders/dev-server": "^7.3.1",
"@angular/animations": "^9.1.13",
"@angular/common": "^9.1.13",
"@angular/core": "^9.1.13",
"@angular/forms": "^9.1.13",
"@angular/platform-browser": "^9.1.13",
"@angular/platform-browser-dynamic": "^9.1.13",
"@angular/router": "^9.1.13",
"@ionic-native/android-permissions": "^5.30.0",
"@ionic-native/app-version": "^5.15.1",
"@ionic-native/camera": "^5.30.0",
"@ionic-native/chooser": "^5.30.0",
"@ionic-native/core": "^5.15.1",
"@ionic-native/device": "^5.15.1",
"@ionic-native/diagnostic": "^5.30.0",
"@ionic-native/file": "^5.15.1",
"@ionic-native/file-chooser": "^5.30.0",
"@ionic-native/file-opener": "^5.15.1",
"@ionic-native/file-path": "^5.30.0",
"@ionic-native/file-transfer": "^5.15.1",
"@ionic-native/google-plus": "^5.33.0",
"@ionic-native/http": "^5.34.0",
"@ionic-native/image-picker": "^5.30.0",
"@ionic-native/ionic-webview": "^5.15.1",
"@ionic-native/keyboard": "^5.15.1",
"@ionic-native/local-notifications": "^5.15.1",
"@ionic-native/media": "^5.30.0",
"@ionic-native/native-page-transitions": "^5.23.0",
"@ionic-native/network": "5.31.1",
"@ionic-native/photo-library": "^5.30.0",
"@ionic-native/photo-viewer": "^5.30.0",
"@ionic-native/screen-orientation": "^5.15.1",
"@ionic-native/sign-in-with-apple": "^5.36.0",
"@ionic-native/social-sharing": "^5.15.1",
"@ionic-native/status-bar": "^5.15.1",
"@ionic-native/streaming-media": "^5.30.0",
"@ionic/angular": "5.7.0",
"@ionic/storage": "2.2.0",
"@ngx-translate/core": "^11.0.1",
"@ngx-translate/http-loader": "^4.0.0",
"@project-sunbird/content-player": "4.4.0",
"@project-sunbird/client-services": "4.6.1",
"@project-sunbird/common-consumption-v9": "4.6.0",
"@project-sunbird/discussions-ui-v8": "2.6.0-beta.2",
"@project-sunbird/sb-dashlet": "1.0.4",
"@project-sunbird/sb-styles": "0.0.9",
"@project-sunbird/sunbird-sdk": "4.6.0",
"@project-sunbird/sunbird-epub-player-v9": "4.6.3",
"@project-sunbird/sunbird-pdf-player-v9": "4.6.4",
"@project-sunbird/sunbird-quml-player-v9": "4.6.6",
"@project-sunbird/sunbird-video-player-v9": "4.6.2",
"chart.js": "^2.9.4",
"chartjs-plugin-datalabels": "^0.7.0",
"chartjs-plugin-stacked100": "^0.7.1",
"colors": "1.4.0",
"com-sarriaroman-photoviewer": "^1.2.5",
"com.jjdltc.cordova.plugin.zip": "git+https://github.com/Sunbird-Ed/jjdltc-cordova-plugin-zip.git",
"com.telerik.plugins.nativepagetransitions": "^0.7.0",
"common-form-elements-v9": "4.6.1",
"cordova-plugin-advanced-http": "^2.5.1",
"cordova-plugin-android-permissions": "^1.1.2",
"cordova-plugin-androidx-adapter": "^1.1.3",
"cordova-plugin-app-version": "^0.1.12",
"cordova-plugin-appavailability": "^0.4.2",
"cordova-plugin-badge": "^0.8.8",
"cordova-plugin-camera": "^5.0.1",
"cordova-plugin-chooser": "^1.3.2",
"cordova-plugin-code-push": "^1.13.1",
"cordova-plugin-device": "^2.0.3",
"cordova-plugin-dialogs": "^2.0.2",
"cordova-plugin-document-viewer": "^0.9.13",
"cordova-plugin-file": "^6.0.2",
"cordova-plugin-file-opener2": "^2.2.1",
"cordova-plugin-file-transfer": "^1.7.1",
"cordova-plugin-filechooser": "^1.2.0",
"cordova-plugin-filepath": "^1.5.8",
"cordova-plugin-filepicker": "^1.1.6",
"cordova-plugin-googleplus": "^8.5.2",
"cordova-plugin-inappbrowser": "^3.2.0",
"cordova-plugin-ionic-keyboard": "^2.2.0",
"cordova-plugin-ionic-webview": "^4.2.1",
"cordova-plugin-media": "^5.0.3",
"cordova-plugin-network-information": "^2.0.2",
"cordova-plugin-printer": "^0.8.0",
"cordova-plugin-screen-orientation": "^3.0.2",
"cordova-plugin-secure-storage-echo": "^5.1.1",
"cordova-plugin-statusbar": "^2.4.3",
"cordova-plugin-streaming-media": "^2.3.0",
"cordova-plugin-webview-checker": "^1.0.1",
"cordova-plugin-whitelist": "^1.3.5",
"cordova-plugin-x-socialsharing": "^6.0.3",
"cordova-plugin-zip": "^3.1.0",
"cordova-sqlite-storage": "6.0.0",
"cordova.plugins.diagnostic": "^5.0.2",
"core-js": "^2.6.10",
"datatables.net-fixedcolumns": "^3.3.3",
"dayjs": "1.9.8",
"dom-to-image": "^2.6.0",
"epubjs": "0.3.88",
"es6-promise-plugin": "^4.2.2",
"grapheme-splitter": "^1.0.4",
"hammerjs": "^2.0.8",
"ionic-plugin-keyboard": "2.2.1",
"ionic4-rating": "^1.0.9",
"jspdf": "^2.0.0",
"jwt-decode": "^2.2.0",
"katex": "^0.12.0",
"lodash-es": "^4.17.20",
"material-design-icons": "^3.0.1",
"moment": "^2.29.1",
"ng-recaptcha": "^5.0.0",
"ng2-charts": "^2.4.2",
"ngx-bootstrap": "^5.6.2",
"ng2-material-dropdown": "0.11.0",
"ngx-chips": "2.2.2",
"ngx-infinite-scroll": "^10.0.1",
"ngx-moment": "^5.0.0",
"pouchdb": "^7.2.2",
"pouchdb-adapter-cordova-sqlite": "^2.0.7",
"pouchdb-find": "^7.2.2",
"rxjs": "^6.6.3",
"sb-notification": "0.0.2",
"sb-svg2pdf": "0.0.10",
"sb-tag-manager": "^3.9.19",
"tslib": "^1.10.0",
"uuid": "^3.4.0",
"video.js": "7.4.1",
"videojs-contrib-quality-levels": "2.1.0",
"videojs-http-source-selector": "1.1.6",
"x2js": "^3.3.0",
"zone.js": "~0.10.2"
},
"resolutions": {
"ng2-material-dropdown": "0.11.0"
},
"config": {
"ionic_source_map_type": "inline-source-map",
"ionic_webpack": "./config/webpack.config.js",
"ionic_sass": "./config/sass.config.js",
"ionic_enable_lint": false
},
"devDependencies": {
"@angular-devkit/architect": "^0.901.15",
"@angular-devkit/build-angular": "~0.901.15",
"@angular/cli": "~9.1.15",
"@angular/compiler": "~9.1.13",
"@angular/compiler-cli": "~9.1.13",
"@angular/language-service": "~9.1.13",
"@angularclass/hmr": "^2.1.3",
"@babel/core": "^7.5.5",
"@babel/plugin-proposal-class-properties": "^7.5.5",
"@babel/plugin-proposal-decorators": "^7.4.4",
"@babel/plugin-proposal-object-rest-spread": "^7.5.5",
"@babel/plugin-transform-runtime": "^7.5.5",
"@babel/preset-env": "^7.9.5",
"@babel/preset-typescript": "^7.9.0",
"@ionic/angular-toolkit": "^2.3.1",
"@ionic/v4-migration-tslint": "^1.7.1",
"@project-sunbird/sb-themes": "0.0.34",
"@project-sunbird/telemetry-sdk": "0.0.29",
"@types/jest": "^25.2.1",
"@types/node": "12.11.5",
"babel-jest": "^25.4.0",
"babel-polyfill": "^6.26.0",
"code-push": "^3.0.1",
"cordova-android": "^9.0.0",
"cordova-plugin-android-downloadmanager": "git+https://github.com/Sunbird-Ed/sb-cordova-plugin-downloadmanager.git",
"cordova-plugin-awesome-shared-preferences": "git+https://github.com/adriano-di-giovanni/cordova-plugin-shared-preferences.git",
"cordova-plugin-fcm-with-dependecy-updated": "git+https://github.com/Sunbird-Ed/sb-cordova-plugin-fcm.git#release-3.4.0",
"cordova-plugin-inappupdatemanager": "git+https://github.com/subranil/cordova-plugin-inappupdatemanager.git#release-3.7.0",
"cordova-plugin-local-notification": "git+https://github.com/katzer/cordova-plugin-local-notifications.git",
"cordova-plugin-openrap": "git+https://github.com/project-sunbird/cordova-plugin-openrap.git",
"cordova-plugin-proguard": "git+https://github.com/greybax/cordova-plugin-proguard.git",
"cordova-plugin-qr-scanner": "git+https://github.com/project-sunbird/cordova-plugin-qr-scanner.git#release-4.6.0",
"cordova-plugin-sunbirdsplash": "git+https://github.com/project-sunbird/cordova-plugin-sunbirdsplash.git",
"cordova-plugin-telerik-imagepicker": "^2.3.3",
"cordova-zip-plugin": "git+https://github.com/Sunbird-Ed/jjdltc-cordova-plugin-zip.git",
"fs-extra": "^8.1.0",
"jest": "^25.4.0",
"plist": "^3.0.2",
"properties-reader": "^2.2.0",
"sb-cordova-plugin-customtabs": "git+https://github.com/Sunbird-Ed/sb-cordova-plugin-customtabs.git",
"sb-cordova-plugin-db": "git+https://github.com/Sunbird-Ed/sb-cordova-plugin-db.git#release-4.6.0",
"sb-cordova-plugin-sync": "git+https://github.com/project-sunbird/sb-cordova-plugin-sync.git",
"sb-cordova-plugin-utility": "git+https://github.com/Sunbird-Ed/sb-cordova-plugin-utility.git#release-4.1.0",
"sonarqube-scanner": "^2.5.0",
"tiny-glob": "^0.2.9",
"ts-node": "^8.4.1",
"tslint": "~5.16.0",
"typescript": "~3.8.3"
},
"description": "An Ionic project",
"cordova": {
"plugins": {
"com.jjdltc.cordova.plugin.zip": {},
"ionic-plugin-keyboard": {},
"cordova-plugin-whitelist": {},
"cordova-plugin-ionic-webview": {},
"cordova-plugin-app-version": {},
"cordova-plugin-x-socialsharing": {},
"cordova-plugin-device": {},
"cordova-plugin-file": {},
"cordova-plugin-file-transfer": {},
"cordova-plugin-inappbrowser": {},
"cordova-plugin-network-information": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-streaming-media": {},
"cordova-plugin-awesome-shared-preferences": {},
"cordova-plugin-advanced-http": {},
"cordova-plugin-android-permissions": {},
"cordova-plugin-media": {},
"cordova-plugin-android-downloadmanager": {},
"sb-cordova-plugin-db": {},
"sb-cordova-plugin-customtabs": {
"URL_SCHEME": "@string/custom_scheme_url",
"URL_HOST": "mobile"
},
"cordova-plugin-qr-scanner": {},
"cordova-plugin-ionic-keyboard": {},
"cordova-plugin-file-opener2": {
"ANDROID_SUPPORT_V4_VERSION": "27.+"
},
"cordova-plugin-screen-orientation": {},
"cordova-plugin-zip": {},
"cordova-plugin-local-notification": {
"ANDROID_SUPPORT_V4_VERSION": "26.+"
},
"cordova-plugin-code-push": {},
"cordova.plugins.diagnostic": {
"ANDROID_SUPPORT_VERSION": "28.+"
},
"cordova-plugin-openrap": {},
"cordova-plugin-webview-checker": {},
"sb-cordova-plugin-utility": {},
"cordova-plugin-printer": {},
"cordova-plugin-fcm-with-dependecy-updated": {
"FCM_CORE_VERSION": "16.0.9",
"FCM_VERSION": "18.0.0",
"GRADLE_TOOLS_VERSION": "3.5.0",
"GOOGLE_SERVICES_VERSION": "4.2.0",
"ANDROID_DEFAULT_NOTIFICATION_ICON": "@mipmap/ic_launcher"
},
"com.telerik.plugins.nativepagetransitions": {},
"sb-cordova-plugin-sync": {},
"cordova-plugin-proguard": {},
"cordova-plugin-androidx-adapter": {},
"cordova-plugin-secure-storage-echo": {},
"cordova-plugin-appavailability": {},
"cordova-plugin-camera": {},
"cordova-plugin-filepath": {},
"cordova-plugin-chooser": {},
"cordova-plugin-filepicker": {},
"cordova-plugin-document-viewer": {},
"com-sarriaroman-photoviewer": {},
"cordova-sqlite-storage": {},
"cordova-plugin-telerik-imagepicker": {},
"cordova-plugin-filechooser": {},
"cordova-plugin-inappupdatemanager": {},
"cordova-plugin-sunbirdsplash": {},
"cordova-plugin-googleplus": {
"PLAY_SERVICES_VERSION": "15.0.1"
}
},
"platforms": [
"android"
]
},
"jest": {
"browser": false,
"globals": {
"cordova": true
},
"setupFiles": [
"<rootDir>/src/__tests__/setup.js"
],
"rootDir": "./",
"roots": [
"<rootDir>/src/app",
"<rootDir>/src/config",
"<rootDir>/src/directives",
"<rootDir>/src/guards",
"<rootDir>/src/pipes",
"<rootDir>/src/services",
"<rootDir>/src/util"
],
"moduleDirectories": [
"node_modules"
],
"testPathIgnorePatterns": [
"/node_modules/"
],
"testMatch": [
"**/?(*.)(spec).ts"
],
"moduleFileExtensions": [
"js",
"jsx",
"json",
"ts",
"tsx"
],
"transform": {
"^.+\\.(ts|js)$": "babel-jest"
},
"coverageReporters": [
"text"
],
"moduleNameMapper": {
"^@app/(.*)$": "<rootDir>/src/$1",
"^sunbird-sdk": "<rootDir>/node_modules/@project-sunbird/sunbird-sdk",
"^sunbird-sdk/(.*)$": "<rootDir>/node_modules/@project-sunbird/sunbird-sdk/$1",
"@project-sunbird/common-consumption": [
"<rootDir>/node_modules/@project-sunbird/common-consumption-v9"
],
"@project-sunbird/common-consumption/*": [
"<rootDir>/node_modules/@project-sunbird/common-consumption-v9/*"
],
"common-form-elements": [
"<rootDir>/node_modules/common-form-elements-v9"
],
"common-form-elements/*": [
"<rootDir>/node_modules/common-form-elements-v9/*"
]
},
"transformIgnorePatterns": [],
"coveragePathIgnorePatterns": [
"<rootDir>/src/app/*/*.module.ts",
"<rootDir>/src/app/animations/*.ts"
]
}
}