Hi i'm new in android and i'm implementing google maps v2 in my project and the minsdk version is 8 (2.2) when i run my project nothings wrong but when i click my button for gps always force close "java.lang.runtimeexception" and it keeps bothering me. could help me from this and thank you in advance. here is my codes.
LocationFinder.java
public class LocationFinder extends FragmentActivity {
private static final LatLng KOLKATA = new LatLng(22.5697, 88.3697);
private GoogleMap map;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_location_finder);
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
Marker kol = map.addMarker(new MarkerOptions().position(KOLKATA)
.title("Kolkata").snippet("The City of Joy"));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(KOLKATA, 15));
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
}
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.location_finder, menu);
return true;
}
}
activity_location_finder.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="#dimen/activity_vertical_margin"
android:paddingLeft="#dimen/activity_horizontal_margin"
android:paddingRight="#dimen/activity_horizontal_margin"
android:paddingTop="#dimen/activity_vertical_margin"
tools:context=".LocationFinder" >
<fragment
android:name="com.google.android.gms.maps.SupportMapFragment"
android:id="#+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
Android manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mobeelity.android.miizootravel"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<permission
android:name="com.mobeelity.android.mizootravel.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<uses-permission android:name="com.mobeelity.android.mizootravel.permission.MAPS_RECEIVE"/>
<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="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme"
android:debuggable="true" >
<activity
android:name="com.mobeelity.android.miizootravel.SplashScreen"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.ZoomanityHome"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.ServiDirect"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="SERVICEDIRECTORY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.Zoocobia"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="ZOOCOBIA" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.ZoocobiaGridViewLayout"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="ZOOCOBIAGALLERY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.ZPlanet"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="ZPLANET" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.ZPlanetGridViewLayout"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="ZPLANETGALLERY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.ResidenceInn"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="RESIDENCEINN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.ResidenceInnGridViewLayout"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="RESIDENCEINNGALLERY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.Paradizoo"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="PARADIZOO" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.ParadizooGridViewLayout"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="PARADIZOOGALLERY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.ZoocolateThrills"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="ZOOCOLATETHRILLS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.ZoocolateThrillsGridViewLayout"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="ZOOCOLATETHRILLSGALLERY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.ZoobicSafari"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="ZOOBICSAFARI" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.ZoobicSafariGridViewLayout"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="ZOOBICSAFARIGALLERY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.LocationFinder"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="LOCATIONFINDER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.mobeelity.android.miizootravel.BookingInquiry"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="BOOKINGINQUIRY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyA0TuMyQAOJrzywPvkTcuPZ9i7igbD9iFI" />
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
</application>
</manifest>
To test your app when using the Google Play services SDK, you must use either:
A compatible Android device that runs Android 2.3 or higher and includes Google Play Store.
The Android emulator with an AVD that runs the Google APIs platform based on Android 4.2.2 or higher.
More info: Set Up Google Play Services SDK
Related
I am rather new to Android Studio and needed help as my app couldn't launch in the emulator despite following all the solutions I can find based on others' experiences.
I have 2 activities currently — Main and Login. I will post the AndroidManifest.xml below. Thank you all for the help and time in advanced!! (I also have this message in my event log: Can't bind to local 8700 for debugger)
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher_round"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity
android:name=".LoginActivity"
android:label="#string/title_activity_login">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data
android:host="ID.firebaseapp.com"
android:scheme="https" />
<category android:name="android.intent.category.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity">
</activity>
</application>
Solution:
Try this below code:
<activity
android:name=".MainActivity">
<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="ID.firebaseapp.com"
android:scheme="https" />
</intent-filter>
</activity>
<activity android:name=".LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Try it ... Hope it helps.
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher_round"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity
android:name=".LoginActivity"
android:label="#string/title_activity_login">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.MAIN" />
<data
android:host="ID.firebaseapp.com"
android:scheme="https" />
<!-- <category android:name="android.intent.category.MAIN" /> -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity">
</activity>
</application>
That maybe help you. :)
I have searched and tried many solutions from stackoverflow,
but i guess am having a different kind of problem.
I have used branch io and sugar orm in my app.
I needed the RECEIVE_SMS & READ_SMS to implement two step authentication and got some map related activity.
Having just uploaded my app to the Play store I get: Supported devices 0 . The app is activated and here is my manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.demo.dlm">
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="26" />
<uses-permission android:name="android.permission.INTERNET" android:required="true" />
<uses-permission android:name="android.permission.ACCESS_GPS" android:required="true" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:required="true" />
<uses-permission android:name="android.permisssion.ACCESS_COARSE_LOCATION" android:required="true" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" android:required="true" />
<uses-permission android:name="android.permission.RECEIVE_SMS" android:required="false" />
<uses-permission android:name="android.permission.READ_SMS" android:required="false" />
<meta-data android:name="DATABASE" android:value="clm.db" />
<meta-data android:name="VERSION" android:value="1" />
<meta-data android:name="QUERY_LOG" android:value="true" />
<meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.selise.clm.common.database.entity" />
<application
android:name=".common.App"
android:allowBackup="false"
android:fullBackupContent="#xml/my_backup_rules"
android:fullBackupOnly="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:hardwareAccelerated="true"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity
android:name=".common.ui.activity.SplashScreenActivity"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data android:scheme="clmdebug" android:host="open" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
<activity
android:name=".login.ui.activity.LoginActivity"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar">
<!-- Branch URI scheme -->
<intent-filter>
<data
android:host="open"
android:scheme="clm" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
<meta-data android:name="io.branch.sdk.BranchKey" android:value="key_live_jjuGmW0h4nBkf309aOCBbpikstjXj60T" />
<meta-data android:name="io.branch.sdk.BranchKey.test" android:value="key_live_eetMk3Wl9w5Jo7kd3s3rPifnrzlZ8fp0" />
<activity
android:name=".login.ui.activity.RegistrationActivity"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar" />
<activity
android:name=".shipment.ui.activity.ShipmentListActivity"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar" />
<activity
android:name=".notification.ui.activity.NotificationListActivity"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar" />
<activity
android:name=".notification.ui.activity.NotificationDetailsActivity"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar" />
<activity
android:name=".shipment.ui.activity.AddShipmentActivity"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar" />
<activity
android:name=".shipment.ui.activity.ShipmentDetailsActivity"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="#string/google_maps_key" />
<service
android:name=".shipmentMap.service.GeofenceTransitionsIntentService"
android:enabled="true" />
<service android:name=".common.service.AccessTokenWithRefreshTokenService" />
<service android:name=".common.service.LoadLastNotificationService" />
<service
android:name=".notification.service.NotificationSignalRService"
android:enabled="true" />
<service android:name=".shipmentMap.currentLocation.service.SendCurrentLocationService" />
<activity
android:name=".shipmentMap.ui.activity.MapsActivity"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar" />
<receiver android:name=".common.receiver.NotificationReceiver">
<intent-filter>
<action android:name="com.selise.clm.SHIPMENT_CHANGED_ROUTE" />
<action android:name="com.selise.clm.SHIPMENT_FORWARD" />
<action android:name="com.selise.clm.SHIPMENT_COMPLETE" />
<action android:name="com.selise.clm.SHIPMENT_CANCELLED" />
<action android:name="com.selise.clm.NOTIFICATION_SERVER_CONNECTED" />
<action android:name="com.selise.clm.NOTIFICATION_SERVER_DISCONNECTED" />
</intent-filter>
</receiver>
<receiver android:name=".common.receiver.AccessTokenAlarmReceiver" android:exported="true"/>
<meta-data android:name="io.fabric.ApiKey" android:value="e7fe0e53b07c82fb5f682d0dddfc8aea6171cda8" />
<!-- Branch init -->
<meta-data
android:name="io.branch.sdk.BranchKey"
android:value="key_live_jjuGmW0h4nBkf309aOCBbpikstjXj60T" />
<meta-data android:name="io.branch.sdk.BranchKey.test" android:value="key_live_eetMk3Wl9w5Jo7kd3s3rPifnrzlZ8fp0" />
<!-- Branch testing (TestMode "true" to simulate fresh installs on dev environment) -->
<meta-data android:name="io.branch.sdk.TestMode" android:value="false" />
<receiver
android:name="io.branch.referral.InstallListener"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<receiver android:name=".login.receiver.SmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<activity android:name=".login.ui.activity.EnterSecurityCodeActivity"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar"></activity>
</application>
Try to fix a typo here:
<uses-permission android:name="android.permisssion.ACCESS_COARSE_LOCATION" android:required="true" />
You have a permisssion (with 3 s, should be permission instead of permisssion).
As i was using SignalIR in my project. I also added the required jar files. The problem was solved. But double check that after adding packagingOptions your notifications works fine.
I added the following lines in the app gradle file like this...
android {
packagingOptions {
exclude 'lib/getLibs.ps1'
exclude 'lib/getLibs.sh'
exclude 'lib/gson-2.2.2.jar'
}
}
I am building a N64 emulator for android, all is going well until I clean it and get a ton of errors in my manifest file. The error is:
Attribute is missing the Android namespace prefix
Here is the code for my manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bytecode.v3.alpha"
android:installLocation="auto"
android:versionCode="37"
android:versionName="3.a.0 (debug)" >
<uses-feature android:glEsVersion="0x00020000" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-sdk
android:minSdkVersion="5"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<application
android:name="com.bytecode.n64emu4droid.AppMupen64Plus"
android:allowBackup="true"
android:isGame="true"
android:hardwareAccelerated="true"
android:icon="#drawable/icon"
android:label="#string/app_name"
android:theme="#style/appTheme" >
<activity
android:name="com.bytecode.n64emu4droid.SplashActivity"
android:label="#string/SplashActivity_title"
android:theme="#style/appTheme.Black" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="tv.ouya.intent.category.GAME" />
</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="*" />
<data android:scheme="file" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.n64" />
<data android:pathPattern=".*\\.N64" />
<data android:pathPattern=".*\\.v64" />
<data android:pathPattern=".*\\.V64" />
<data android:pathPattern=".*\\.z64" />
<data android:pathPattern=".*\\.Z64" />
</intent-filter>
</activity>
<activity
android:name="com.bytecode.n64emu4droid.GalleryActivity"
android:exported="false"
android:label="#string/GalleryActivity_title"
android:launchMode="singleTask" >
</activity>
<activity
android:name="com.bytecode.n64emu4droid.PlayMenuActivity"
android:exported="false"
android:label="#string/PlayMenuActivity_title" >
<intent-filter>
<action android:name=".PlayMenuActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.bytecode.n64emu4droid.SettingsGlobalActivity"
android:exported="false"
android:label="#string/SettingsGlobalActivity_title" >
<intent-filter>
<action android:name=".SettingsGlobalActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.bytecode.n64emu4droid.profile.ManageControllerProfilesActivity="false"
android:label="#string/ManageControllerProfilesActivity_title" >
<intent-filter>
<action android:name=".profile.ManageControllerProfilesActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.bytecode.n64emu4droid.profile.ControllerProfileActivity="false"
android:label="#string/ControllerProfileActivity_title" >
<intent-filter>
<action android:name=".profile.ControllerProfileActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.bytecode.n64emu4droid.profile.ManageEmulationProfilesActivity="false"
android:label="#string/ManageEmulationProfilesActivity_title" >
<intent-filter>
<action android:name=".profile.ManageEmulationProfilesActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.bytecode.n64emu4droid.profile.EmulationProfileActivity="false"
android:label="#string/EmulationProfileActivity_title" >
<intent-filter>
<action android:name=".profile.EmulationProfileActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.bytecode.n64emu4droid.profile.ManageTouchscreenProfilesActivity="false"
android:label="#string/ManageTouchscreenProfilesActivity_title" >
<intent-filter>
<action android:name=".profile.ManageTouchscreenProfilesActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.bytecode.n64emu4droid.profile.TouchscreenProfileActivity="false"
android:label="#string/TouchscreenProfileActivity_title" >
<intent-filter>
<action android:name=".profile.TouchscreenProfileActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.bytecode.n64emu4droid.input.DiagnosticActivity="false"
android:label="#string/DiagnosticActivity_title" >
<intent-filter>
<action android:name=".input.DiagnosticActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.bytecode.n64emu4droid.cheat.CheatEditorActivityanges="keyboardHidden|orientation|screenSize"
android:label="#string/CheatEditorActivity_title" >
<intent-filter>
<action android:name=".cheat.CheatEditorActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!--
For the GameActivities, do not restart the activity when the phone's slider
opens or closes, or when the orientation (and thereby screen size) changes.
This behavior is specified in android:configChanges below.
-->
<activity
android:name="com.bytecode.n64emu4droid.GameActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="#string/GameActivity_title"
android:theme="#style/appTheme.Black" >
</activity>
<activity
android:name="com.bytecode.n64emu4droid.GameActivityXperiaPlay"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="#string/GameActivity_title"
android:theme="#style/appTheme.Black" >
<meta-data
android:name="android.app.lib_name"
android:value="xperia-touchpad" />
</activity>
<meta-data
android:name="xperiaplayoptimized_content"
android:resource="#drawable/hireslogo" />
<meta-data
android:name="game_display_name"
android:resource="#string/app_name" />
<meta-data
android:name="game_icon"
android:resource="#drawable/hireslogo" />
</application>
The error occurs at more then one location. Of them is:
android:name="com.bytecode.n64emu4droid.profile.ControllerProfileActivity="false"
Your manifest is slightly messed up.
Sometimes you have android:name= followed by ="false", which does not mean anything.
My guess is that that false was referred to a android:exported attribute that somehow got lost.
So you should have:
android:name="name"
android:exported="false"
In a similar way, you have:
android:name="com.bytecode.n64emu4droid.cheat.CheatEditorActivityanges="keyboardHidden|orientation|screenSize"
but I think that should be:
android:name="package.CheatEditorActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
See here for allowed attributes.
Everybody ask me why my app requires phone calls permission, and I don't know what to say, cause I did not add any phone calls permission to my manifest file. Here are my permissions:
<uses-permission " />
<uses-permission >
<uses-permission " />
<uses-permission >
<uses-permission " />
<uses-permission >
And here's what Google Play says:
THIS APPLICATION HAS ACCESS TO THE FOLLOWING:
NETWORK COMMUNICATION
FULL NETWORK ACCESS
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
CONNECT AND DISCONNECT FROM WI-FI
Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.
PHONE CALLS
READ PHONE STATUS AND IDENTITY
Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active and the remote number connected by a call.
Hide
NETWORK COMMUNICATION
VIEW NETWORK CONNECTIONS
Allows the app to view information about network connections such as which networks exist and are connected.
VIEW WI-FI CONNECTIONS
Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
CHANGE NETWORK CONNECTIVITY
Allows the app to change the state of network connectivity.
What's going on here?
EDIT:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="rs.androidaplikacije.flagsandmoney"
android:versionCode="7"
android:versionName="1.3.3" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="10" />
<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" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
<activity
android:name="rs.androidaplikacije.flagsandmoney.MainActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.Kviz"
android:label="#string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.KVIZ" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.SwarmPopup"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.SWARMPOPUP" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.Pravila"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.PRAVILA" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.NetPopup"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.NETPOPUP" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.Kviz10Medium"
android:label="#string/app_name" >
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.KVIZ10MEDIUM" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.Kviz20Medium"
android:label="#string/app_name" >
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.KVIZ20MEDIUM" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.Kviz10Hard"
android:label="#string/app_name" >
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.KVIZ10HARD" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.Kviz20Hard"
android:label="#string/app_name" >
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.KVIZ20HARD" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.Kviz20"
android:label="#string/app_name" >
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.KVIZ20" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.Menu"
android:label="#string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.MENU" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.Izbor"
android:label="#string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.IZBOR" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.Rezultat"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.REZULTAT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.Prefs"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#style/PrefsTheme"
>
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.PREFS" />
<category android:name="android.intent.category.DEFAULT"
/>
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.PogresanOdgovor"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.POGRESANODGOVOR" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.TacanOdgovor"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.TACANODGOVOR" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacije.flagsandmoney.RezultatVreme"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacije.flagsandmoney.REZULTATVREME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
public static final String ACCESS_NETWORK_STATE
Added in API level 1
Allows applications to access information about networks
Constant Value: "android.permission.ACCESS_NETWORK_STATE"
From the documentation, this seems to mean ALL networks, including the phone.
So, Google Play reports that my app uses Phone calls permission. So, I had some permissions, mainly for network and internet and I've deleted all of them and I STILL HAVE phone calls permission!! Here's my manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="rs.androidaplikacijekvizopstekulture"
android:versionCode="4"
android:versionName="1.1.2">
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="10" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
<activity
android:name="rs.androidaplikacijekvizopstekulture.MainActivity"
android:label="#string/app_name"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.Menu"
android:label="#string/app_name"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.MENU" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.Izbor"
android:label="#string/app_name"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.IZBOR" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.Pravila"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.PRAVILA" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.DvadesetPitanja"
android:label="#string/app_name"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.DVADESETPITANJA" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.NeogranicenoPetGresaka"
android:label="#string/app_name"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.NEOGRANICENOPETGRESAKA" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.NeogranicenoTriGreske"
android:label="#string/app_name"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.NEOGRANICENOTRIGRESKE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.NeogranicenoJednaGreska"
android:label="#string/app_name"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.NEOGRANICENOJEDNAGRESKA" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.Kviz"
android:label="#string/app_name"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.KVIZ" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.Prefs"
android:label="#string/app_name"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.PREFS" />
<category android:name="android.intent.category.DEFAULT"
/>
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.PogresanOdgovor"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.POGRESANODGOVOR" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.SwarmPopup"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.SWARMPOPUP" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.NetPopup"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.NETPOPUP" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.Rezultat"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.REZULTAT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.RezultatVreme"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.REZULTATVREME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="rs.androidaplikacijekvizopstekulture.TacanOdgovor"
android:label="#string/app_name"
android:theme="#android:style/Theme.Dialog"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="rs.androidaplikacijekvizopstekulture.TACANODGOVOR" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
So, apsolutely no permissions in my manifest file, and I still get the Phone calls permission. I DON'T GET IT!
The compiler automatically adds this permission for compatibility reasons if your app use a library designed to run on Android 1.5 or below (because this permission was introduced in Android 1.6).
I guess it's caused by the AdMob library, which still supports Android 1.5.