我的安卓应用显示为“此项目与您的设备不兼容”。

6
我刚刚在市场上发布了我的应用程序更新。然后我尝试在运行2.2.2的Nexus One手机上查找它,但是我无法在市场上找到它。 我去了Web市场,找到了它,但是安装被禁用,并显示“此项目与您的设备不兼容”。 下面是我的清单 - 我看不出任何会阻止它在我的Nexus One上工作的东西。这让我想,也许对其他人也没有显示。 有人能否安装(或查看是否显示)“Occupied for Kids”或“Occupied for Kids(演示版)”? 您可以轻松尝试演示版本,因为它是免费的。 两个版本都有这个问题。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.ecg.occupiedDemo"
      android:versionCode="15"
      android:versionName="2.01"
      android:installLocation="auto" >

    <supports-screens
        android:smallScreens="false"
        android:normalScreens="true" 
        android:largeScreens="true" 
        android:anyDensity="true"
    />

    <uses-configuration android:reqTouchScreen="finger"></uses-configuration>
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:icon="@drawable/button_launchdemo" android:label="@string/app_name">
        *<Activity List Here>*
    </application>
    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="7" />

</manifest> 

我在Nexus S和三星Galaxy Tab上看到了同样的情况。不,我没有解释。 - CommonsWare
我和另一个安装了我的应用程序的Nexus S用户进行了核实,他也看不到它们中的任何一个。这真是令人沮丧! - Steve0212
3个回答

6

可能的另一个原因:

我在发布应用程序时遇到了这个问题,所以我一直在调试它,直到找到解决方法。当我在我的应用程序上禁用了拷贝保护时,突然间它就与我的设备(Sony Xperia Play)兼容了,并且我能够通过安卓市场进行安装。

现在,拷贝保护已经被弃用,并被新的许可证功能所取代,因此假设许可证没有相同的错误,这个问题理论上将逐渐消失。对于那些现在受影响的人,我找到了一个潜在的解决方案,但需要一个解锁的启动加载程序来清除您的缓存分区:

http://forum.xda-developers.com/showpost.php?p=11626645&postcount=425

因此,如果您是开发人员,有些人无法看到您的应用程序,请禁用拷贝保护并改用许可证。我还建议使用Android SDK内置的ProGuard功能来混淆(加密)您的代码,使其更难以反向工程化。


3

玩了一会儿,我找到了解决我的问题的方法。当我上传APK到市场时,出现了一个警告“此apk请求1个本地平台,将用于Android市场过滤”,因为我包含了一个JAR文件。一旦我删除了JAR文件,它开始再次显示。


你好。能否请您详细说明一下那个JAR库的问题?为什么需要与本地代码进行某些限制? 当我的应用程序编译针对某个(Java)第三方库JAR时会发生什么? - superjos
你应该澄清答案,并将其标记为正确答案。谢谢。 - 0xC0DED00D

0

好的,问题已解决...

你需要在 Android 开发者控制台中进行操作。向下滚动,你可以看到支持的“兼容”设备。 例如,如下所示:

Android 开发者控制台: 支持的设备 [了解更多] 此应用仅适用于具有以下功能的设备,这些功能在您的应用程序清单中定义。 屏幕布局:正常、大、特大 屏幕密度: 必需的设备功能 android.hardware.touchscreen 此应用可用于超过469个设备。查看设备

点击有关“查看设备”的链接。如果你的设备没有出现在列表中,它将不会在市场中显示。其中一个原因是,在运行1.6+的后期手机中有些屏幕布局被指定为 SMALL,并且在1.5上不受支持。因此,在这种情况下,如果要添加小屏幕支持,请向您的清单添加目标 SDK 版本。然后,您的项目将无法编译!因此,请右键单击您的项目->属性并将构建目标更改为1.6,它仍将在1.5上运行,但现在可以在市场上看到了。上传(发布之前)后,您应该在支持的设备列表中看到您的手机...像摇摆和旋转木马一样!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接