Android Marketplace中与Google TV兼容的问题

时间:2014-02-19 21:33:15

标签: android google-tv android-market-filtering

我需要我的应用程序在GoogleTV上运行,但无论我对Android清单做什么,似乎都不支持很大一部分GoogleTV设备。无论如何要知道我做错了什么或为什么应用程序被特定设备拒绝?如果我至少可以让它在索尼NSZ-GS7 / GX70上运行,我会非常高兴。这是apk的aapt转储的副本。

package: name='HarshMarshmallow.app' versionCode='2' versionName='1.0.1'
sdkVersion:'11'
targetSdkVersion:'17'
uses-feature-not-required:'android.hardware.touchscreen'
uses-permission:'android.permission.INTERNET'
uses-permission:'android.permission.ACCESS_NETWORK_STATE'
uses-permission:'android.permission.ACCESS_WIFI_STATE'
application-label:'HarshMarshmallow'
application-icon-120:'res/drawable-ldpi/ic_launcher.png'
application-icon-160:'res/drawable-mdpi/ic_launcher.png'
application-icon-240:'res/drawable-hdpi/ic_launcher.png'
application-icon-320:'res/drawable-xhdpi/ic_launcher.png'
application-icon-480:'res/drawable-xxhdpi/ic_launcher.png'
application: label='HarshMarshmallow' icon='res/drawable-mdpi/ic_launcher.png'
launchable-activity: name='HarshMarshmallow.app.activityMain'  label='' icon=''
uses-feature:'android.hardware.wifi'
uses-implied-feature:'android.hardware.wifi','requested android.permission.ACCES
S_WIFI_STATE, android.permission.CHANGE_WIFI_STATE, or android.permission.CHANGE
_WIFI_MULTICAST_STATE permission'
uses-feature:'android.hardware.screen.landscape'
uses-implied-feature:'android.hardware.screen.landscape','one or more activities
have specified a landscape orientation'
main
other-activities
other-services
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--'
densities: '120' '160' '240' '320' '480'
native-code: 'armeabi' 'armeabi-v7a' 'mips' 'x86'

编辑:

这是我的清单的副本:

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

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

<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
<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:name="applicationGlobalVars"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Light.NoTitleBar">
    <service android:name="com.paypal.android.sdk.payments.PayPalService" android:exported="false"/>
    <activity android:name="com.paypal.android.sdk.payments.PaymentActivity" />
    <activity android:name="com.paypal.android.sdk.payments.LoginActivity" />
    <activity     android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" />
    <activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" />
    <activity
        android:name="io.card.payment.CardIOActivity"
        android:configChanges="keyboardHidden|orientation" />
    <activity android:name="io.card.payment.DataEntryActivity" />
    <activity
        android:name="HarshMarshmallow.activityMain"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="activityAddChannel"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape"></activity>
    <activity android:name="activityCurrentChannels"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape"></activity>
    <activity android:name="activityCurrentShows"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape"></activity>
    <activity android:name="activityDeleteFromChannel"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape"></activity>
    <activity android:name="activityLoadingScreen"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape">
    </activity>
    <activity android:name="activityMediaPlayer"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape"></activity>
    <activity android:name="activityNameChannel"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape"></activity>
    <activity android:name="activityNetworkSettings"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape"></activity>
    <activity android:name="activityTutorial"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape">
    </activity>
    <activity android:name="activityHelp"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape"></activity>
</application>

</manifest>

编辑2:

所以我刚收到谷歌的回复。

  

感谢您与Google Play开发人员支持小组联系。我们调查过   您报告的行为,并发现您的应用不是   由于与以下内容冲突而与NSZGS7兼容:无   指定的本机平台(armeabi,armeabi-v7a,mips,x86)   受设备支持。不幸的是我们无法提供   更详细的分析。

本机平台是否已连接到我应用程序中包含的库,或者是否存在某些我忘记关闭的首选项?我和ADT一起使用eclipse。

3 个答案:

答案 0 :(得分:1)

所以我回到这里回答这个问题,因为我相信其他人将来会遇到这个问题。问题与aapt转储底部的本机代码行有关。即使它可能在您的个人googletv上完全正常工作,谷歌声称它在商店中是不兼容的。

要解决Eclipse中的问题,首先单击您的项目并导航到libs部分。如果此部分中的文件夹中有任何内容,则无法在GoogleTV上使用。删除文件夹,从构建路径中删除库,并从代码和android清单中删除引用(如果有)。我的问题来自于包含paypal库,但这应该是解决这个问题的一般方法。

希望这会有所帮助。记住:

1)你不能使用googletv

进行纵向方向

2)你需要添加:

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

到你的androidmanifest

3)您不能在aapt转储的底部使用本机代码行。这将导致GoogleTV被过滤

答案 1 :(得分:0)

某些Sony设备需要清单中的uses-library标记。我不确定这是否是其中之一,但您可能需要以下应用程序标记:

<uses-library android:name="com.sony.tablet" />

答案 2 :(得分:0)

确保您没有更改方向代码。由于它是电视,应用程序无法真正使用任何类型的定位。