10

You know, I'm really disappointed right now. I spent the last 5 months making this app, from design to coding a..z and now I'm this close: my app supports 0 devices.

Then I spent almost 24 hours already trying to figure out what the heck is going on and still couldn't get it working. I need help.

p.s: The "Localizations: default+49 languages" field: in my app I only have English with the default values/strings.xml but I don't mind users in other languages on their phone will see my app in English.

UPDATE: Found and added my clarified answer, however the accepted answer got me going the right way. So thank you.

Here is what I got:

enter image description here

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="xxxxxxxxxxx"
    android:versionCode="2"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />        
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    

    <uses-feature android:name="android.hardware.CAMERA" />
    <uses-feature android:name="android.hardware.camera.AUTOFOCUS" />

    <application
        android:hardwareAccelerated="true"        
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Holo.Theme"
        android:name="org.holoeverywhere.app.Application">

        <!-- Blank Activity -->
        <activity            
            android:name=".BlankActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            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>

        <!-- Access Activity -->
        <activity                                    
            android:name=".AccessActivity"
            android:label="@string/title_activity_access"             
            android:screenOrientation="portrait">
        </activity>

        <!-- Register Activity -->
        <activity                        
            android:name=".RegisterActivity"
            android:screenOrientation="portrait"            
            android:label="@string/lbActRegister">
        </activity>

        <!-- Login Activity -->
        <activity                        
            android:name=".LoginActivity"
            android:screenOrientation="portrait"            
            android:label="@string/lbActLogin">
        </activity>

        <!-- Recovery Activity -->
        <activity            
            android:name=".RecoveryActivity"
            android:screenOrientation="portrait"
            android:label="@string/lbActRecovery">
        </activity>

        <!-- Dashboard Activity -->
        <activity                                    
            android:name=".DashboardActivity"
            android:label="@string/app_name"
            android:launchMode="singleTop"             
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden|screenSize">
        </activity>

        <!-- Edit Profile Activity -->
        <activity            
            android:name=".EditProfileActivity"
            android:screenOrientation="portrait"
            android:label="@string/lbActEditProfile">
        </activity>

        <!-- Feedback Activity -->
        <activity            
            android:name=".FeedbackActivity"
            android:screenOrientation="portrait"
            android:label="@string/lbActFeedback">
        </activity>

        <!-- TOSU Activity -->
        <activity            
            android:name=".TOSUActivity"
            android:screenOrientation="portrait"
            android:label="@string/lbActTerms">
        </activity>

        <!-- About Activity -->
        <activity            
            android:name=".AboutActivity"
            android:screenOrientation="portrait"
            android:label="@string/lbActAbout">
        </activity>

        <!-- Donation Activity -->
        <activity            
            android:name=".DonationActivity"
            android:screenOrientation="portrait"
            android:label="@string/lbActDonation">
        </activity>

        <!-- Image Upload Activity -->
        <activity                        
            android:name=".photo.ImageUploadActivity"
            android:screenOrientation="portrait"
            android:label="@string/lbActUpload" 
            android:configChanges="orientation|keyboardHidden|screenSize">
        </activity>

        <!-- Me Detail Activity -->
        <activity            
            android:name=".photo.MeDetailActivity"
            android:label="@string/lbActCollection"
            android:parentActivityName=".DashboardActivity"            
            android:configChanges="orientation|keyboardHidden|screenSize">

            <meta-data android:name="android.support.PARENT_ACTIVITY"
                       android:value=".DashboardActivity" />
        </activity>

        <!-- Explore Detail Activity -->
        <activity            
            android:name=".photo.ExploreDetailActivity"
            android:label="@string/lbActExplore"
            android:parentActivityName=".DashboardActivity"            
            android:uiOptions="splitActionBarWhenNarrow"
            android:configChanges="orientation|keyboardHidden|screenSize">

            <meta-data android:name="android.support.PARENT_ACTIVITY"
                       android:value=".DashboardActivity" />
        </activity>

        <!-- Liked Detail Activity -->
        <activity            
            android:name=".photo.LikedDetailActivity"
            android:label="@string/lbActLikes"
            android:parentActivityName=".DashboardActivity"            
            android:configChanges="orientation|keyboardHidden|screenSize">

            <meta-data android:name="android.support.PARENT_ACTIVITY"
                       android:value=".DashboardActivity" />
        </activity>

    </application>

</manifest>
jerrytouille
  • 1,238
  • 1
  • 13
  • 28
  • 1
    Have you activated the apk? – Raghav Sood May 10 '13 at 13:46
  • Yes. Also this is the latest Google Play Store. – jerrytouille May 10 '13 at 13:47
  • 2
    I'd double check every permission and hardware requirement you have, try remove them one by one and see which one makes you drop to 0. Maybe one of then has a typo. – Thibault D. May 10 '13 at 13:49
  • Yes I tried that, think of what I have tried in 24 hours... – jerrytouille May 10 '13 at 13:52
  • 1
    Like in this issue for example, he had miss-written the name of a hardware: http://stackoverflow.com/questions/14020237/android-app-is-supported-by-0-devices – Thibault D. May 10 '13 at 13:52
  • Have you tried another package name? I don't know what would happen if you would use a package name already in use. – Thibault D. May 10 '13 at 13:53
  • have you tried tinkering with version code version and version name?? – apollosoftware.org May 10 '13 at 13:53
  • Also, [this issue](http://stackoverflow.com/questions/8172454/android-market-this-application-is-available-to-over-0-devices) suggests something with importing JARs instead of Android Library Projects. – Thibault D. May 10 '13 at 13:55
  • 2
    where is read external storage permission in manifest? – Marko Niciforovic May 10 '13 at 13:55
  • We can't think of all you've tried so please be nice if we suggest things you've already tried :) – Thibault D. May 10 '13 at 13:55
  • @thibaultd yeah... sorry it's kinda long day for me and I'm a bit frustrated. I do appreciate all the helps and inputs though :) – jerrytouille May 10 '13 at 13:57
  • 1
    @MarkoNiciforovic Read external storage is a new permission. Automatically granted when you have write external permissions. Its not currently in use, but its planned for future versions of Android. – Raghav Sood May 10 '13 at 13:59
  • 1
    Have you tried removing the `supports-screens` tag? If you support everything, it serves no purpose at all. Also, `uiOptions` was added in API 14. Not sure whether one is allowed to include API 14 options in a manifest which claims your app will run on API 8. – class stacker May 10 '13 at 13:59
  • @MarkoNiciforovic these extras in screenshots: android.hardware.camera.AUTOFOCUS, android.hardware.TOUCHSCREEN, android.permission.READ_EXTERNAL_STORAGE are implied and auto-added. I fully tested the officially signed release app on 4 different Android phones, and uploaded the same APK. – jerrytouille May 10 '13 at 14:05
  • @ClassStacker yeah the version code 1 originally didn't have the supports-screens tag, I added in later while researching on SO apparently that didn't help either. – jerrytouille May 10 '13 at 14:07
  • @thibaultd the importing JARs is a weird issue for me, I'm using ActionBarSherlock library and already added the project to build path. I do use http-mime-4.2.5.jar for server http-post and that works when I fully tested the officially signed release app on 4 different Android phones, and uploaded the same APK. I'm not sure how to add project file for that http-mime... – jerrytouille May 10 '13 at 14:11
  • @jerrytouille yea I've just read about it. : – Marko Niciforovic May 10 '13 at 14:12
  • @MarkoNiciforovic yeah I'm the one upvoted your comment and Raghav's ;) – jerrytouille May 10 '13 at 14:13
  • @jerrytouille ^^ if you manage to solve problem please let write your solution, I'd like to know what was wrong – Marko Niciforovic May 10 '13 at 14:20
  • @MarkoNiciforovic I always post or accept the solution. Finger crossed. – jerrytouille May 10 '13 at 15:26

1 Answers1

1

Try to change android.hardware.CAMERA with android.hardware.camera. Then

For any of the permissions below, you can disable filtering based on the implied feature by explicitly declaring the implied feature explicitly, in a element, with an android:required="false" attribute.

And according to the permissions features, you didn't add the feature android.hardware.camera.autofocus.

So add this feature or change your camera permission with :

 <uses-feature android:name="android.hardware.camera" android:required="false" />

Hope it works :)

Alexis C.
  • 91,686
  • 21
  • 171
  • 177
  • Change `android.hardware.CAMERA` with `android.hardware.camera` just to see what happens – Alexis C. May 10 '13 at 14:54
  • Maybe you could write to the support : https://support.google.com/googleplay/android-developer/answer/136601?hl=fr – Alexis C. May 10 '13 at 15:24
  • what does the license key do? I signed my app with my own private keystore via Android Tools - Export Signed App Package... Is that the right way doing it? Am I missing something? (my app is free) – jerrytouille May 10 '13 at 15:38
  • I'm using Eclipse to write android app. What I do is right click on the project -> Export Android App and then I sign it with my keystore too. You can try this way – Alexis C. May 10 '13 at 15:41
  • What do you mean by private keystore? Did you create a specific keystore? or are you using the debug keystore? You shouldn't use the debug default keystore to sign your apps, if ever you were doing so. – Thibault D. May 10 '13 at 16:04
  • 1
    No you can't publish app with the debug keystore. I use the keystore that I created to publish app on google play – Alexis C. May 10 '13 at 16:10
  • This answer is correct. Do NOT use uppercase for `uses-feature... android.hardware` XML tag, even though Android display the last component UPPERCASE (like in the screenshot). Reference: http://developer.android.com/guide/topics/manifest/uses-feature-element.html – jerrytouille May 10 '13 at 17:09