I got an email from Google with the following subject : Google Play Warning: SSL Error Handler Vulnerability". In this email, Google explains that my app has an ["unsafe implementation of the WebViewClient.onReceivedSslError handler"
Here's my implementation of the method (WebView Client) :
public class MyBrowser extends WebViewClient {
boolean timeout;
public MyBrowser() {
timeout = true;
}
#Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
try {
progressBar.setVisibility(View.VISIBLE);
}catch(Exception e){
e.printStackTrace();
}
}
#Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
public void onPageFinished(WebView view, String url) {
try{
progressBar.setVisibility(View.GONE);
webView.setVisibility(View.VISIBLE);
}catch(Exception e){
Log.e("Exception", e.toString());
Crashlytics.logException(e);
}
}
#Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
isBack=true;
if (!CommonUtility.isNetworkAvailable()) {
view.loadUrl("file:///android_asset/error.html");
}
}
}
After first warning, i removed the onReceivedSslError Method from the WebClient and uploaded the new build, but again i got the same warning from Google Play.
and they recommended me to :-
" It looks like Version 18 still has the vulnerability. Please re-check your app's manifest file, this time more carefully, to ensure that the vulnerability has been address."
Here's my Manifest File :- (Kindly Help me to get rid off this issue)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="in.test"
android:installLocation="auto"
android:versionCode="18"
android:versionName="2.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21" />
<!-- GCM Permisssions -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!--
Creates a custom permission so only this app can receive its messages.
NOTE: the permission *must* be called PACKAGE.permission.C2D_MESSAGE,
where PACKAGE is the application's package name.
-->
<permission
android:name="in.Sptest.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:name=".application.TestApplication"
android:hardwareAccelerated="true"
android:icon="#drawable/logo"
android:label="#string/app_name"
tools:replace="android:icon,android:name" >
<activity
android:name=".LauncherScreen"
android:hardwareAccelerated="true"
android:label="#string/title_activity_main"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".MainActivity"
android:hardwareAccelerated="true"
android:label="#string/title_activity_main"
android:noHistory="false"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".URLActivity"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".SplashActivity"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".activities.ActivityIntro"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Login_test"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".fragment.FragmentActivityNumberVerification"
android:icon="#drawable/app_icon"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".BrowserScreen"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".activities.TermsActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".DataCardRecharge"
android:label="#string/title_activity_launcher_screen"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".UserFeedBack"
android:label="#string/title_activity_launcher_screen"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".PostpaidMobileRecharge"
android:label="#string/title_activity_launcher_screen"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".PrepaidMobileRecharge"
android:label="#string/title_activity_launcher_screen"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".Recharge"
android:label="#string/title_activity_launcher_screen"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".RailBooking"
android:label="#string/title_activity_launcher_screen"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".ProfileDetails"
android:label="#string/title_activity_profile_details"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".RailTransactionhistory"
android:label="#string/title_activity_transactionhistory"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".GetPhoneContact"
android:label="#string/title_activity_get_phone_contact"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".TariffPlans"
android:label="#string/title_activity_tariff_plans"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".TrnsactionHistory_Details"
android:label="#string/title_activity_trnsaction_history__details"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".RailTrnsactionHistory_Details"
android:label="#string/title_activity_trnsaction_history__details"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".MyProfile"
android:label="#string/title_activity_trnsaction_history__details"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".ZaakPAyResponse"
android:label="#string/title_activity_trnsaction_history__details"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".ZaakPAyResponseRailBooking"
android:label="#string/title_activity_trnsaction_history__details"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".RailTicket_PNR"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".PNRStatusDetails"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".RailTicket_History"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".activities.ActivityFavouriteDialog"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name=".PassenderHistory"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" />
<!-- Copy below Activity Declarations inside <application></application> tag in AndroidManifest.xml of your application -->
<!-- Wallet SDK Activity Classes Start Here -->
<!-- Wallet SDK Activity Classes End Here -->
<activity
android:name=".TariffPlansActivity"
android:label="#string/title_activity_tariff_plans"
android:screenOrientation="portrait"
android:theme="#style/Theme.Tariff_plans" >
</activity>
<activity
android:name=".TransactionMessageActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".AboutActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".ShareActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar"
android:windowSoftInputMode="stateHidden" >
</activity>
<activity
android:name=".ActivityLastRechargeList"
android:label="#string/title_activity_activity_last_recharge_list"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".ActivityNewInfo"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".ActivitySendMoney"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar"
android:windowSoftInputMode="stateHidden" >
</activity>
<activity
android:name=".ActivitySetTransactionPassword"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".ActivityReceivedMoneyDetails"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".ActivityTransactionHistory"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".ActivityRailBookingHistory"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".ActivityNotificationDialog"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Holo.Light.Dialog.NoActionBar" >
</activity>
<activity
android:name=".FirstActivity"
android:exported="true"
android:hardwareAccelerated="true"
android:label="#string/title_activity_main"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".activities.OffersFragmentActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.Transparent" >
</activity>
<activity
android:name=".RechargeActivity"
android:exported="true"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden" >
</activity>
<activity
android:name=".RailActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar"
android:windowSoftInputMode="stateHidden|adjustPan" >
</activity>
<activity
android:name=".InviteActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" />
<activity
android:name="in.Sptestdeals.DealsActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.test" >
</activity>
<activity
android:name=".ActivityNotification"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name="in.Sptestdeals.DealDetailsActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.test"
android:windowSoftInputMode="stateAlwaysHidden" >
</activity>
<activity
android:name="com.Spdealmodule.activities.ActivityTransactionMessageTest"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
</activity>
<activity
android:name=".ActivityPaymentOptionsSelection"
android:screenOrientation="portrait"
android:theme="#style/Theme.test"
android:windowSoftInputMode="stateAlwaysHidden" >
</activity>
<activity
android:name=".activities.OpenURLInWebViewActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.test"
android:windowSoftInputMode="stateAlwaysHidden" >
</activity>
<activity
android:name=".activities.OpenInterestURLInWebViewActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.Transparent" >
</activity>
<activity
android:name=".activities.ActivityOfferDetail"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden" >
</activity>
<activity
android:name=".activities.ActivityAskFriend"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden" >
</activity>
<activity
android:name=".activities.ActivityNoOffer"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden" >
</activity>
<activity
android:name=".ActivitySavedCard"
android:screenOrientation="portrait"
android:theme="#style/Theme.test"
android:windowSoftInputMode="stateAlwaysHidden" >
</activity>
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="#string/app_name"
android:theme="#android:style/Theme.Translucent.NoTitleBar" />
<service android:name=".service.AppInstallIntentService" >
</service>
<service android:name=".service.FetchtestListService" >
</service>
<receiver android:name="com.broadcastreceiver.WakefullReceiverAppInstall" >
<intent-filter android:priority="2147483647" >
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_INSTALL" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<receiver
android:name="com.broadcastreceiver.ServiceStarter"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="android.intent.action.REBOOT" />
</intent-filter>
</receiver>
<receiver android:name="com.broadcastreceiver.NetworkChangeReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<service android:name=".service.NetworkChangeIntentService" />
<!--
WakefulBroadcastReceiver that will receive intents from GCM
services and hand them to the custom IntentService.
The com.google.android.c2dm.permission.SEND permission is necessary
so only GCM services can send data messages for the app.
-->
<receiver
android:name="com.Sptest.gcm.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<!-- Receives the actual messages. -->
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="in.Sptest" />
</intent-filter>
</receiver>
<receiver
android:name="com.broadcastreceiver.ReferrerCatcher"
android:exported="true" >
<intent-filter android:priority="2147483647" >
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<service android:name="com.Sptest.gcm.GcmIntentService" />
<service android:name=".service.ReferralIntentService" />
<service android:name="com.google.analytics.tracking.android.CampaignTrackingService" />
<service android:name=".service.SmsReadService" />
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProvider1450001738595564"
android:exported="true" />
<service android:name=".service.InAppNotificationService" />
<service android:name="com.Sptest.gcm.GCMRegistrationService" />
<!-- <meta-data -->
<!-- android:name="com.google.android.gms.version" -->
<!-- android:value="#integer/google_play_services_version" /> -->
<meta-data
android:name="io.fabric.ApiKey"
android:value="5423ec39674b4ed2b5891b52a2a7738b1fe69317" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="#string/facebook_app_id" />
<meta-data
android:name="com.facebook.sdk.ApplicationName"
android:value="#string/app_name" />
<activity
android:name=".SMSVerifyActivity"
android:screenOrientation="portrait"
android:theme="#style/Theme.Sherlock.Light.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="www.Sptest.com"
android:pathPrefix="/scomm/vf"
android:scheme="https" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="smsverify"
android:scheme="Sptest" />
</intent-filter>
</activity>
<activity
android:name="in.Testsdk.TestOffersListActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Translucent" >
</activity>
<service android:name="in.Testsdk.services.TestAppInstallIntentService" >
</service>
<service android:name="in.Testsdk.services.TestAppOpenService" >
</service>
<activity
android:name="in.Testsdk.TestOpenInterestActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:screenOrientation="portrait"
android:theme="#style/Theme.Transparent" />
<activity
android:name="in.Testsdk.TestOpenURLInWebViewActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:screenOrientation="portrait" >
</activity>
<receiver android:name="in.Testsdk.broadcastreceiver.WakefullReceiverAppInstall" >
<intent-filter android:priority="2147483647" >
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_INSTALL" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<activity
android:name=".RailPaymentWebViewActivity"
android:label="#string/title_activity_rail_payment_web_view"
android:screenOrientation="portrait">
</activity>
</application>
Though you have removed onReceivedSslError method, some other libraries like payment gateways might still be using a built-in WebView and hence you are still getting that warning. Check all your libraries or update them. I hope this solves your problem!
You must provide correct implementation for onReceivedSslError method. Answered here Webview avoid security alert from google play upon implementation of onReceivedSslError
Related
When people install my app, they get two apps (same app, two icons). Here's my AndroidManifest.xml file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.test">
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.INTERNET" />
<permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity
android:name=".SplashActivity"
android:theme="#style/AppTheme.SplashScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SettingsActivity" />
<activity android:name=".HistoryActivity" />
<activity
android:name=".PaymentActivity"
android:screenOrientation="portrait" />
<activity
android:name=".PlayerActivity"
android:screenOrientation="portrait" />
<activity
android:name=".SearchActivity"
android:screenOrientation="portrait" />
<activity android:name=".VideoActivity" />
<activity
android:name=".FacebookActivity"
android:screenOrientation="portrait" />
<activity
android:name=".HomeActivity"
android:screenOrientation="portrait" />
<activity
android:name=".LibraryActivity"
android:screenOrientation="portrait" />
<activity
android:name=".LoginActivity"
android:screenOrientation="portrait" />
<activity
android:name=".BookDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name=".BookActivity"
android:screenOrientation="portrait" />
<activity
android:name=".CategoryActivity"
android:screenOrientation="portrait" />
<activity
android:name=".TextActivity"
android:screenOrientation="portrait" />
<activity
android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="preloaded_fonts"
android:resource="#array/preloaded_fonts" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="#string/facebook_app_id" />
<service android:name="com.beraldo.playerlib.PlayerService" />
<receiver
android:name=".LaunchPlayerBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.beraldo.playerlib.LAUNCH_PLAYER_ACTIVITY" />
</intent-filter>
</receiver>
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="#string/app_name" />
</application>
</manifest>
Any help would be greatly appreciated.
You have:
<activity
android:name=".SplashActivity"
android:theme="#style/AppTheme.SplashScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
and you have:
<activity
android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Both have the <intent-filter> that says you want those activities to have icons in the launcher. If that is not what you want, remove the <intent-filter> from one of them.
I use Android Studio
I build the app and play in device.
but, in device's normal display(like when phone open state),
I can't see the icon
In device Setting, I find the app in application manager,
but I can't see in normal display
this is my androidmanifest.xml
<application
android:allowBackup="true"
android:icon="#drawable/imagebutton_on"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity android:name=".Activity.SplashActivity"
android:theme="#style/AppTheme"
android:icon="#drawable/imagebutton_on"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="roid.intent.category.LAUNCHER" />
</intent-filter>
</activity>
I embrassed of that
please help me
this is my full android-manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.thewell_dev.fourscompany">
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.BROADCAST_STICKY"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="#mipmap/imagebutton_on"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity android:name=".Activity.SplashActivity"
android:theme="#style/AppTheme"
android:icon="#mipmap/imagebutton_on"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="roid.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="example.com"></data>
<data android:scheme="http"></data>
<data android:pathPattern="/.*"></data>
</intent-filter>
</activity>
<activity android:name=".Activity.LoginActivity">
</activity>
<activity android:name=".Activity.JoinActivity"
android:theme="#style/SplashTheme"
>
</activity>
<activity android:name=".Activity.MainActivity"
android:theme="#style/ListTheme"
android:icon="#mipmap/imagebutton_on"
>
</activity>
<activity android:name=".Activity.CompanyActivity"
android:theme="#style/CompanyTheme"
android:configChanges="orientation|keyboardHidden|screenLayout|screenSize"
>
</activity>
<activity android:name=".Activity.CardActivity"
android:theme="#style/SplashTheme"
>
</activity>
<activity android:name=".Activity.CardListActivity"
android:theme="#style/SplashTheme"
>
</activity>
<activity android:name=".Activity.CardPreviewActivity">
</activity>
<activity android:name=".Activity.ManagementActivity">
</activity>
<activity android:name=".Activity.BeaconActivity">
</activity>
<activity android:name=".Activity.CompanyCardActivity"
android:theme="#style/SplashTheme"
>
</activity>
<activity android:name=".Activity.PreferencActivity"
android:theme="#style/SplashTheme"
>
</activity>
<activity android:name=".Activity.FileListActivity">
</activity>
<activity android:name=".Activity.PasswordChangeActivity"
android:theme="#style/SplashTheme"
>
</activity>
<activity android:name=".Activity.RemoveUserActivity"
android:theme="#style/SplashTheme"
>
</activity>
<activity android:name=".Activity.ProvisionActivity">
</activity>
<activity android:name=".Activity.QuestionActivity">
</activity>
<activity android:name=".Activity.ExpandActivity">
</activity>
<activity android:name=".Activity.CardPrecaptureActivity"
android:theme="#style/SplashTheme"
>
</activity>
<activity android:name=".Activity.BookMarkActivity"
android:theme="#style/SplashTheme"
>
</activity>
<activity android:name=".Activity.FindPasswordActivity"
android:theme="#style/SplashTheme"
>
</activity>
<activity android:name=".Activity.CardListDetailActivity">
</activity>
<activity android:name=".Activity.UploadCertificationActivity">
</activity>
<activity android:name=".Activity.UploadRewardActivity">
</activity>
<activity android:name=".Activity.OnOffProductActivity"
>
</activity>
<activity android:name=".Activity.OnOffCompanyActivity"
>
</activity>
</application>
</manifest>
App Icon should be placed in mipmap folder. Move your imagebutton_on in res\mipmap\ and Replace below code from application tag:
android:icon="#drawable/imagebutton_on">
With:
android:icon="#mipmap/imagebutton_on"
And resolve the following issue, as Markus Kauppinen mentioned:
<category android:name="roid.intent.category.LAUNCHER" />
To:
<category android:name="aroid.intent.category.LAUNCHER" />
Hope this helps.
Try by removing following lines from all activity tags
android:icon="#mipmap/imagebutton_on"
Keep it in only application tag.
This question already has answers here:
My android app is not being displayed in the app drawer?
(3 answers)
Closed 7 years ago.
When I run my app from android studio the app is installing but the icon is no showing in app menu. It only shows in home screen. I have not changed anything in manifiest. Everything was fine, suddenly this problem started. I am struggling with it for 3 hours. Its annoying. If you see these pictures you will understand.
See the Beat Box icon is missing from first picture. Why this is happening?
my manifiest code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="prime.beatbox"
android:installLocation="auto">
<uses-sdk android:minSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:allowBackup="true"
android:icon="#drawable/download"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="#android:style/Theme.Translucent" />
<activity
android:name=".MainActivity"
android:label="#string/app_name"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<data android:scheme="file" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Player"
android:label="#string/title_activity_player"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
</activity>
<service
android:name=".EgineBackground"
android:enabled="true" >
</service>
<activity
android:name=".Statistics"
android:label="#string/title_activity_statistics"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".AlbumItems"
android:label="#string/title_activity_album_items"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".ArtistAlbum"
android:label="#string/title_activity_artist_album"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".AnimationTest"
android:label="#string/title_activity_animation_test"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".DataBase"
android:label="#string/title_activity_data_base"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".EqualizerLocal"
android:label="#string/title_activity_equalizer"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
</activity>
<receiver
android:name=".EgineBackground$PreviousButtonListener"
android:enabled="true" >
</receiver>
<receiver
android:name=".EgineBackground$NextButtonListener"
android:enabled="true" >
</receiver>
<receiver
android:name=".EgineBackground$PlayButtonListener"
android:enabled="true" >
</receiver>
<receiver
android:name=".EgineBackground$CancelButtonListener"
android:enabled="true" >
</receiver>
<receiver
android:name=".NewAppWidget$NextButtonListenerNotification"
android:enabled="true" >
</receiver>
<receiver
android:name=".NewAppWidget$PlayButtonListenerNotification"
android:enabled="true" >
</receiver>
<receiver
android:name=".NewAppWidget$GoToApp"
android:enabled="true" >
</receiver>
<receiver
android:name=".EgineBackground$CallDetector"
android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
<activity
android:name=".Themes"
android:label="#string/title_activity_themes" >
</activity>
<activity
android:name=".sleep"
android:label="#string/title_activity_sleep" >
</activity>
<activity
android:name=".Favourite"
android:label="#string/title_activity_favourite" >
</activity>
<activity
android:name=".PhoneMemory"
android:label="#string/title_activity_phone_memory" >
</activity>
<receiver android:name=".NewAppWidget" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="#xml/new_app_widget_info" />
</receiver>
<activity
android:name=".MyFolders"
android:label="#string/title_activity_my_folders" >
</activity>
<activity
android:name=".CardMemory"
android:label="#string/title_activity_card_memory" >
</activity>
<activity
android:name=".PlayList"
android:label="#string/title_activity_play_list" >
</activity>
<activity
android:name=".PlaylistDetails"
android:label="#string/title_activity_playlist_details" >
</activity>
<activity
android:name=".SongDetails"
android:label="#string/title_activity_song_details" >
</activity>
<activity
android:name=".SearchBox"
android:label="#string/title_activity_search_box"
android:windowSoftInputMode="adjustPan" >
</activity>
<activity
android:name=".SearchAlbum"
android:label="#string/title_activity_search_album" >
</activity>
<activity
android:name=".About"
android:label="#string/title_activity_about" >
</activity>
</application>
</manifest>
The problem is <data android:scheme="file" /> , you cannot logically use this tag in launcher activity.
Set if the activity should be an option for the default action (center press) to perform on a piece of data. Setting this will hide from the user any activities without it set when performing an action on some data. Note that this is normal -not- set in the Intent when initiating an action — it is for use in intent filters specified in packages.
This question already exists:
Error: no eligible device for app install
Closed 8 years ago.
I posted an app on the playstore but i get the error "This app is incompatible with your device.". The app works fine on my device.But i am not able to load it from the store to the device .The manifest is:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.igloo.readfifa"
android:versionCode="4"
android:versionName="1.4" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="com.igloo.readfifa.SplashScreen"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.igloo.readfifa.MainMenu"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.igloo.readfifa.TypeSelection"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.igloo.readfifa.playerquiz"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.igloo.readfifa.playerquizmain"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.igloo.readfifa.teamquizmain"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.igloo.readfifa.leaguequizmain"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.igloo.readfifa.teamquiz"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.igloo.readfifa.leaguequiz"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.igloo.readfifa.shopcoins"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<service android:name="com.igloo.readfifa.BillingService" />
<receiver android:name="com.igloo.readfifa.BillingReceiver" >
<intent-filter>
<action android:name="com.android.vending.billing.IN_APP_NOTIFY" />
<action android:name="com.android.vending.billing.RESPONSE_CODE" />
<action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED" />
</intent-filter>
</receiver>
<!-- NEW CODE BY AJITH -->
<activity
android:name="com.igloo.readfifa.LoginActivity"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<!-- Entry for RegisterActivity.class -->
<activity
android:name="com.igloo.readfifa.RegisterActivity"
android:label="Register New Account"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.igloo.readfifa.PredictionActivity"
android:label="#string/title_activity_prediction"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.igloo.readfifa.FixtureActivity"
android:label="#string/title_activity_fixture"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.igloo.readfifa.HistoryActivity"
android:label="#string/title_activity_fixture"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<!-- END OF CODE BY AJITH -->
<!-- Ad Colony -->
<activity
android:name="com.jirbo.adcolony.AdColonyOverlay"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="#android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
<activity
android:name="com.jirbo.adcolony.AdColonyFullscreen"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="#android:style/Theme.Black.NoTitleBar.Fullscreen" />
<activity
android:name="com.jirbo.adcolony.AdColonyBrowser"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="#android:style/Theme.Black.NoTitleBar.Fullscreen" />
<activity
android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
<!-- Ad colony -->
<activity
android:name="com.igloo.readfifa.CoinShop"
android:label="#string/title_activity_coin_shop"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.igloo.readfifa.Options"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen"
>
</activity>
<activity
android:name="com.igloo.readfifa.About"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Light.NoTitleBar.Fullscreen"
>
</activity>
</application>
</manifest>
Please help!!
You are missing the screen supports section of you manifest, try reading this http://developer.android.com/guide/topics/manifest/supports-screens-element.html
I uploaded my android application in google play. After uploading it on google play, I can't see the samsung galaxy s3 in the list of available devices.
I tried to find the answer everywhere but I can't solve it.
I also posted my android menifiest file below:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.eliteplatinum.budgetplanner"
android:versionCode="12"
android:versionName="2.1" >
<!-- android:installLocation="auto" -->
<uses-sdk android:minSdkVersion="4" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.vending.BILLING" />
<application
android:icon="#drawable/app_icon"
android:label="#string/app_name" >
<activity
android:label="#string/app_name"
android:name=".Splash"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name="AlarmReceiver"
android:process=":remote" >
</receiver>
<activity
android:name=".NotificationDialog"
android:theme="#android:style/Theme.Translucent.NoTitleBar" >
</activity>
<activity
android:name=".Login"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".SignUp"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".Forecast"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".Search"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".Plot"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".PieChart"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.bargraph.BarGraph"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".BarGraph"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".Reports"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".Summary"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".Calc"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".Settings"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".Accounts"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".AddAccount"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".EditAccount"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".FAQs"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".SyncNRestore"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.dignizant.inappbilling.Plans"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".Categories"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".AddCategory"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".EditSubCategories"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.wheel.main"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name="com.horizontal.wheel.DefaultDateSlider"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<service android:name="com.dignizant.inappbilling.BillingService" />
<receiver android:name="com.dignizant.inappbilling.BillingReceiver" >
<intent-filter >
<action android:name="com.android.vending.billing.IN_APP_NOTIFY" />
<action android:name="com.android.vending.billing.RESPONSE_CODE" />
<action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED" />
</intent-filter>
</receiver>
</application>
Googly play is using Filtering while user are searching app in Google play.
there are so many things to consider while search app in Google play.
Please visit the following link to getting idea.
Filtering App in Google Play
Let me know you have any Query!