質問

I need my app to run on GoogleTV, but a good portion of GoogleTV devices don't seem to be supported no matter what I do to the android manifest. Is there anyway to figure out what I am doing wrong or why the app is being rejected for specific devices? If I could at least get it to run on the Sony NSZ-GS7/GX70, I would be super happy. Here is a copy of the aapt dump for the apk.

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'

EDIT:

Here is a copy of my manifest:

<?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>

EDIT 2:

So I just got a reply back from google.

Thanks for contacting Google Play Developer Support. We investigated the behavior that you've reported and have found that your app is not compatible with the NSZGS7 due to a conflict with the following: none of the specified native platforms (armeabi, armeabi-v7a, mips, x86) are supported by the device. Unfortunately we aren't able to provide a more detailed analysis.

Are the native platforms connected to the libraries that I have included in my app, or is there some kind of preference I have forgotten to turn off? I am using eclipse with ADT.

役に立ちましたか?

解決

So I came back here to answer this question, because I'm sure that other people will have trouble with this in the future. The problem had to do with the native-code line at the bottom of the aapt dump. Even though it might work completely fine on your personal googletv, google claims that it is incompatible in the store.

To fix the problem in Eclipse, first click on your project and navigate to the libs section. If there is anything in folders in this section, it will not work on the GoogleTV. Delete the folders, remove the libraries from the build path, and delete the references (if any) from your code and the android manifest. My problem came from the inclusion of the paypal libraries, but this should be the general way to fix this problem.

Hope this helps. Remember:

1) You can't have a portrait orientation with googletv

2) You need to add this:

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

to your androidmanifest

3) You cannot have the native-code line at the bottom of the aapt dump. It will cause the GoogleTV to be filtered

他のヒント

Some Sony devices require a uses-library tag in the manifest. I'm not sure if this is one of them, but you might need the following under the application tag:

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

make sure you don't have orientation code changes in there. Since it's a tv the app can't really use any kind of orientation stuff.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top