我需要我的应用程序在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。
答案 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)
确保您没有更改方向代码。由于它是电视,应用程序无法真正使用任何类型的定位。