I've done an app and I've tried it on my tablet via USB.
But when I uploaded it to market it didnt show for my pad... :S
I guess the problem is in my manifest...
Here is my manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.thorne.godnattsmamonster"
android:versionCode="2"
android:versionName="1.1" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<uses-permission
android:name="android.permission.CAMERA"
android:maxSdkVersion="19" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="19" />
<uses-permission
android:name="android.permission.VIBRATE"
android:maxSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="com.thorne.godnattsmamonster.MainActivity"
android:label="#string/app_name"
android:screenOrientation="sensorLandscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.thorne.godnattsmamonster.BookInterface"
android:label="#string/title_activity_book_interface"
android:screenOrientation="sensorLandscape" >
</activity>
<activity
android:name="com.thorne.godnattsmamonster.SettingsActivity"
android:label="#string/settings"
android:screenOrientation="sensorLandscape" >
</activity>
<activity
android:name="com.thorne.godnattsmamonster.Peekaboo"
android:label="#string/title_activity_peekaboo"
android:parentActivityName="com.thorne.godnattsmamonster.MainActivity"
android:screenOrientation="sensorLandscape">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.thorne.godnattsmamonster.MainActivity" />
</activity>
</application>
</manifest>
What do I need to add?
BR
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
That's your problem there. Some/most tablets don't have external storage. Either use internal storage (in which case you don't need a permission), or try adding android:required="false" to your WRITE_EXTERAL_STORAGE permission. Either way though, you are going to have to go into your code where you are writing to external storage and change it to internal, or handle the case where a tablet doesn't have external storage.
Related
I am using a react-native android app. And my device is not supported because it does not have the required feature: android.hardware.telephony.
Yes, I do not have telephony in my tablet. But, I am not adding this required feature in my manifest. So, where exactly is react-native adding this required feature in the build? And how can I turn it off.
My manifest file is below.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kalhatti.main"
android:versionCode="5"
android:versionName="1.5">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="22" />
<application
android:name=".MainApplication"
android:allowBackup="true"
android:label="#string/app_name"
android:icon="#mipmap/ic_launcher"
android:theme="#style/AppTheme">
<activity
android:name=".MainActivity"
android:label="#string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest>
Thanks.
To allow the app to be installed in tablets, add the following to AndroidManifest:
<uses-feature android:name="android.hardware.telephony" android:required="false" />
Thanks to #GabeSechan for answering in comments.
I switched in manifest manually between activities because I made new activity that needed to be first. Everything works fine, but in the apps screen in my launcher where I see all apps below my app icon i see the name of the first activity "SplashScreen", but when I uninstall in or go to my apps I see that the name is OK.
My manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
<application
android:hardwareAccelerated="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:largeHeap="true"
android:theme="#android:style/Theme.NoTitleBar" >
<activity
android:name="com.myapp.SplashScreen"
android:label="#string/title_activity_splash_screen"
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="com.myapp.MainScreen"
android:label="#string/title_activity_main_screen"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.myapp.Cameras"
android:label="#string/title_activity_cameras"
android:screenOrientation="portrait" >
</activity>
</application>
android:label="#string/title_activity_splash_screen"
that is the name being used.
you can just delete this line (and all the label from the other activities) and let all activities use the application name #string/app_name
<activity
android:name="com.myapp.SplashScreen"
android:label="#string/app_name"
android:screenOrientation="portrait" >
This should display the Application name
I am running into an issue that is confusing me. It seems as if android apps are NOT fully compartmentalized is this the case.
I have a Samsung SIII phone and I am building apps that are used as templates. Basically it is the same app but with different content the content is retrieved from our database at startup.
So my process is to create a single app get it working, then copy it to another package through refactoring and I change the data retrieval calls and I have two apps the internal functioning and coding is basically identical.
What I am seeing is this I start one app and it seems to be working just fine and I can open and close it several times with no issue, then out of the blue I get a pop up that says a certain app has stopped functioning. The issue is I never opened that app I could have opened one of the duplicates but I even forgot I had the app that crashed on the phone let alone starting it.
I routinely shut down all running apps just to make sure things run smoothly and I never see that this mystery app is running anywhere.
The shut down message just simply appears but it is always after running apps that ran the same code but not all the time.
This may be the reason I have seen some other issues but can't tell
the basics of the other issue is two sets of code that are pretty much identical per my process where one works and the other doesn't
I am very confused
Can anyone help clear the smoke?
this may help it is a list of my permissions
uses-permission android:name="com.android.vending.BILLING"
uses-permission android:name="android.permission.INTERNET"
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
uses-permission android:name="android.permission.READ_PHONE_STATE"
uses-permission android:name="android.permission.ACCESS_WIFI_STATE"
uses-permission android:name="android.permission.BLUETOOTH"
The content for all of my template apps will be VERY similar except for the package name versions etc.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.blah.blahblah"
android:versionCode="2"
android:versionName="0.75" >
<uses-sdk
android:minSdkVersion="5"
android:targetSdkVersion="7" />
<!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. -->
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name" >
<activity
android:name=".IntroActivity"
android:label="#string/title_activity_main"
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=".MainActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".InfoActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".AudioActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".MovePlayActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".WebActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" >
</activity>
</application>
Here is a second one
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.blah2.blah2blah2"
android:versionCode="4"
android:versionName="1.5" >
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="7" />
<!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. -->
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name" >
<activity
android:name=".IntroActivity"
android:label="#string/title_activity_main"
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=".MainActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".AudioActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".MovePlayActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".WebActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" >
</activity>
</application>
I do see the min SDK version has changed I don't remember doing this right off hand but I must have for some reason
I want to publish my new app in Play Store but see this message in app panel:
This application is only available to devices with these features,
as defined in your application manifest.
Screen layouts: SMALL NORMAL LARGE XLARGE
Required device features
android.hardware.location
android.hardware.location.gps
android.hardware.location.network
android.hardware.screen.portrait
android.hardware.sensor.accelerometer
android.hardware.touchscreen
This application is available to over 0 devices.
Why it said that my app available to over 0 devices? I have tested on my phone and it works. At least one device :)
My Manifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="..."
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.sensor.accelerometer" />
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#android:style/Theme.Black.NoTitleBar" >
<activity
android:name="MainActivity"
android:configChanges="orientation"
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="ListActivity"
android:screenOrientation="portrait">
</activity>
<activity
android:name="SettingsActivity"
android:screenOrientation="portrait">
</activity>
<activity
android:name="HelpActivity"
android:screenOrientation="portrait">
</activity>
<activity
android:name="AboutActivity"
android:screenOrientation="portrait">
</activity>
</application>
</manifest>
This shows up using IE. Go and look in Firefox, and you will have a large # of devices.
I have uploaded the android app in the android app store. The app is not visible from the mobile app store but from my browser it is visible.
The devices I have tried:
GT-S5360 (Samsung) gingerbread
A60 (Micromax) gingerbread
The AndroidManifest.xml code is
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hyperwebenable.techpanels"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="4" />
<application android:icon="#drawable/sitelogo"
android:label="#string/app_name">
<activity android:name=".MessageList"
android:label="#string/app_name"
android:theme="#android:style/Theme.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity"
android:theme="#android:style/Theme.NoTitleBar" >
</activity>
<meta-data android:name="com.mobclix.APPLICATION_ID"
android:value=""/>
<activity
android:name="com.mobclix.android.sdk.MobclixBrowserActivity"
android:theme="#android:style/Theme.Translucent.NoTitleBar" />
</application>
<uses-sdk android:minSdkVersion="2" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission
android:name="android.permission.READ_PHONE_STATE">
</uses-permission>
</manifest>
Please let me know what I am doing wrong here.
I'm not sure if this could cause a problem, but your uses-sdk is defined twice (with a different minSdkVersion). Try removing the second one.