Запуск leanback произошла ошибка

I want to create a single apk that will be compatible with mobile and TV. As I understand I should specify the launcher activity for both platforms in manifest, one for mobile with <category and...

I want to create a single apk that will be compatible with mobile and TV. As I understand I should specify the launcher activity for both platforms in manifest, one for mobile with <category android:name="android.intent.category.LAUNCHER" />, another for TV with <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> intent filter. And Android should automatically pick the right activity when launching, depending on platform, right ? Or I should add some java code and start my TV activity from code ? Currently it launch my mobile activity when using android TV emulator. Below is my manifest file :

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

    <uses-sdk tools:overrideLibrary="android.support.v17.leanback"/>

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

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

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

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

    <uses-feature android:name="android.software.leanback"
        android:required="false" />

    <application
        android:name="com.mypackagename.App"
        android:allowBackup="true"
        android:hardwareAccelerated="true"
        android:icon="@drawable/ic_launcher"
        tools:replace="android:icon"
        android:label="@string/app_name"
        android:banner="@drawable/ic_launcher"
        android:largeHeap="true"
        android:supportsRtl="false"
        android:theme="@style/AppTheme" >

        <activity
            android:name="com.mypackagenametv.MainTVActivity"
            android:theme="@style/TVAppTheme"
            android:label="@string/app_name"
            android:logo="@drawable/ic_launcher"
            android:screenOrientation="landscape" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.mypackagenametv.PlayerActivity"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
        <activity android:name="com.mypackagenametv.DetailsActivity" />

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <activity
            android:name="com.mypackagename.ui.activities.MainActivity"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:screenOrientation="sensorLandscape"
            android:windowSoftInputMode="stateHidden|adjustResize|adjustPan" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.mypackagename.ui.activities.SplashActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:label="@string/app_name"
            android:screenOrientation="sensorLandscape"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 .... other activities
    </application>

</manifest>

SOLVED

My mobile activity was specified explicitly in Run configurations as launcher. After I set Launch default Activity everything works fine.

asked Feb 3, 2015 at 11:40

Mickey Tin's user avatar

Mickey TinMickey Tin

3,32810 gold badges42 silver badges70 bronze badges

9

I had the same problem. The solution was defining another configuration for Android TV.

Step1: Edit Configuration
enter image description here

Step2: Copy Android app configuration
enter image description here

Step3: Change configuration name to tvApp

Step4: Change Launch Activity to your TV activity
enter image description here

answered Jul 21, 2021 at 21:03

AliSh's user avatar

AliShAliSh

9,8075 gold badges42 silver badges75 bronze badges

0

So, I`m trying to implement Leanback activity, and i have activity:

public class TvNavigationActivity extends LeanbackActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_navigation);
}

My layout resource file looks like this:

<?xml version="1.0" encoding="utf-8"?>
<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_frame"
    android:name="com.app.tv.firetv.ui.fragment.HomeFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

homefragment and its layout looks like this

public class HomeFragment extends BrowseSupportFragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_home, container, false);       

        return view;
    }    
}

HomeFragment.xml

 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/backgroundColor">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="48sp"
            android:text="HOME"
            android:layout_centerInParent="true"/>
    
    </RelativeLayout>

When i run this the app crashes, here is log:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.app.tv.firetv, PID: 32640
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.tv.firetv/com.app.tv.firetv.ui.activity.TvNavigationActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v17.leanback.app.HeadersSupportFragment.setAlignment(int)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5417)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v17.leanback.app.HeadersSupportFragment.setAlignment(int)' on a null object reference
        at android.support.v17.leanback.app.BrowseSupportFragment.onStart(BrowseSupportFragment.java:1662)
        at android.support.v4.app.Fragment.performStart(Fragment.java:2477)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1494)
        at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
        at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
        at android.support.v4.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:3235)
        at android.support.v4.app.FragmentController.dispatchStart(FragmentController.java:212)
        at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:628)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)
        at android.app.Activity.performStart(Activity.java:6253)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
        at android.app.ActivityThread.-wrap11(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:5417) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

I cant figure out whats wrong, because I was doing it be tutorial.

So, I`m trying to implement Leanback activity, and i have activity:

public class TvNavigationActivity extends LeanbackActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_navigation);
}

My layout resource file looks like this:

<?xml version="1.0" encoding="utf-8"?>
<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_frame"
    android:name="com.app.tv.firetv.ui.fragment.HomeFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

homefragment and its layout looks like this

public class HomeFragment extends BrowseSupportFragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_home, container, false);       

        return view;
    }    
}

HomeFragment.xml

 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/backgroundColor">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="48sp"
            android:text="HOME"
            android:layout_centerInParent="true"/>
    
    </RelativeLayout>

When i run this the app crashes, here is log:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.app.tv.firetv, PID: 32640
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.tv.firetv/com.app.tv.firetv.ui.activity.TvNavigationActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v17.leanback.app.HeadersSupportFragment.setAlignment(int)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5417)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v17.leanback.app.HeadersSupportFragment.setAlignment(int)' on a null object reference
        at android.support.v17.leanback.app.BrowseSupportFragment.onStart(BrowseSupportFragment.java:1662)
        at android.support.v4.app.Fragment.performStart(Fragment.java:2477)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1494)
        at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
        at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
        at android.support.v4.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:3235)
        at android.support.v4.app.FragmentController.dispatchStart(FragmentController.java:212)
        at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:628)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)
        at android.app.Activity.performStart(Activity.java:6253)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
        at android.app.ActivityThread.-wrap11(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:5417) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

I cant figure out whats wrong, because I was doing it be tutorial.


Повреждение, отсутствие или удаление файлов leanback-v17-25.2.0-javadoc.jar может привести к ошибкам UE_4.18. В большинстве случаев скачивание и замена файла JAR позволяет решить проблему. В некоторых случаях реестр Windows пытается загрузить файл leanback-v17-25.2.0-javadoc.jar, который больше не существует; в таких ситуациях рекомендуется запустить сканирование реестра, чтобы исправить любые недопустимые ссылки на пути к файлам.

Leanback-v17-25.2.0-javadoc.jar для %%os%% и почти для всех версий операционной системы Windows можно скачать ниже. В настоящее время в нашей безе отсутствуют некоторые файлы leanback-v17-25.2.0-javadoc.jar, однако вы можете получить их по запросу, нажав на кнопку Request (Запрос) рядом с соответствующей версией файла. Если ниже отсутствует необходимая вам версия, мы рекомендуем обратиться непосредственно к Epic Games, Inc..

Несмотря на то, что в большинстве случаев после размещения файла leanback-v17-25.2.0-javadoc.jar в надлежащем месте на жёстком диске, сообщения об ошибках, связанных с этим файлом, больше не выводятся, следует выполнить быструю проверку, чтобы окончательно в этом убедиться. Повторно запустите UE_4.18, чтобы убедиться, что проблема успешно решена.

Leanback-v17-25.2.0-javadoc.jar Описание файла
Формат файла: JAR
Тип приложения: video game development
App: UE_4.18
Версия выпуска: 4.18.3
Компания: Epic Games, Inc.
 
Имя файла: leanback-v17-25.2.0-javadoc.jar  

KB: 261
SHA-1: a8b9799c52698aa75743ef772c402ba381a5d7de
MD5: 4fa7e366c55db0df31e569e2508fdf19
CRC32: 5da8876c

Продукт Solvusoft

Загрузка
WinThruster 2023 — Сканировать ваш компьютер на наличие ошибок реестра в leanback-v17-25.2.0-javadoc.jar

Windows
11/10/8/7/Vista/XP

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

JAR
leanback-v17-25.2.0-javadoc.jar

Идентификатор статьи:   734575

Leanback-v17-25.2.0-javadoc.jar

Имя MD5 Байт Загрузить
+ leanback-v17-25.2.0-javadoc.jar 4fa7e366c55db0df31e569e2508fdf19 261.00 B
Application UE_4.18 4.18.3
Создано Epic Games, Inc.
Вер Windows 10
Архитектура 64-разрядная (x64)
KB 261
MD5 4fa7e366c55db0df31e569e2508fdf19
ША1 a8b9799c52698aa75743ef772c402ba381a5d7de
CRC32: 5da8876c
каталог C:WindowsSystem32
+ leanback-v17-25.2.0-javadoc.jar 4fa7e366c55db0df31e569e2508fdf19 261.00 B
Application UE_4.20 4.20.3
Создано Epic Games, Inc.
Вер Windows 10
Архитектура 64-разрядная (x64)
KB 261
MD5 4fa7e366c55db0df31e569e2508fdf19
ША1 a8b9799c52698aa75743ef772c402ba381a5d7de
CRC32: 5da8876c
каталог C:WindowsSystem32

Типичные ошибки Leanback-v17-25.2.0-javadoc.jar

Проблемы, возникающие с leanback-v17-25.2.0-javadoc.jar и UE_4.18, включают:

  • «Ошибка в файле Leanback-v17-25.2.0-javadoc.jar.»
  • «Leanback-v17-25.2.0-javadoc.jar отсутствует или перемещен. «
  • «Не удалось найти leanback-v17-25.2.0-javadoc.jar. «
  • «Не удалось загрузить Leanback-v17-25.2.0-javadoc.jar.»
  • «Не удалось зарегистрировать leanback-v17-25.2.0-javadoc.jar.»
  • «Ошибка времени выполнения UE_4.18: leanback-v17-25.2.0-javadoc.jar»
  • «Ошибка загрузки: leanback-v17-25.2.0-javadoc.jar. «

Обычно ошибки синего экрана, связанные с leanback-v17-25.2.0-javadoc.jar, возникают при загрузке драйвера устройства, связанного с Epic Games, Inc., во время установки UE_4.18 или связанной программы или во время запуска или завершения работы Windows. Отслеживание ошибок leanback-v17-25.2.0-javadoc.jar, связанных с UE_4.18, имеет решающее значение для обнаружения неисправностей и ретрансляции обратно в Epic Games, Inc. для параметров восстановления.

Leanback-v17-25.2.0-javadoc.jar Истоки проблем

Большинство проблем leanback-v17-25.2.0-javadoc.jar связаны с отсутствующим или поврежденным leanback-v17-25.2.0-javadoc.jar, вирусной инфекцией или недействительными записями реестра Windows, связанными с UE_4.18.

Точнее, ошибка leanback-v17-25.2.0-javadoc.jar, вызванная:

  • Раздел реестра leanback-v17-25.2.0-javadoc.jar поврежден.
  • Вирус заразил leanback-v17-25.2.0-javadoc.jar, создавая повреждения.
  • Другая программа злонамеренно или по ошибке удалила файлы, связанные с leanback-v17-25.2.0-javadoc.jar.
  • Другая программа находится в конфликте с UE_4.18 и его общими файлами ссылок.
  • Поврежденная загрузка или неполная установка программного обеспечения UE_4.18.

@andrewger157

Hi,
I don’t know if this is the right place to ask for info on this problem but I hope you can help me.

I’m trying to release an update of my TV app but the console gives me the following warning
«You’ve activated Android TV, but the APK or the Android App Bundle does not have the Leanback intent.»

The app is already on the store for several years and the last update was done in August 2018 and I had no problems. The new update contains only bug fixing.

Can you tell me what I’m doing wrong?

My app uses the «leanback-v17: 26.0.2»

@Fleker

Your app manifest should have the leanback launcher intent filter as part of your main activity.

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>

@andrewger157

Thanks, the problem is that my manifest already has the intent filter.
So far I have never had problems, only with the new apk I have this warning but installing it manually on the TV works properly

This is the manifest of my app:

<uses-sdk xmlns:tools="http://schemas.android.com/tools"
    tools:overrideLibrary="xx.xxx.tv,android.support.v17.leanback,android.support.v17.preference" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.providers.tv.permission.READ_EPG_DATA" />
<uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" />
<uses-permission android:name="com.android.permission.BIND_JOB_SERVICE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />


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

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

<permission android:name="xx.xxx.permission"
    android:protectionLevel="signature"/>

<application
    android:name=".xxx.Application"
    android:allowBackup="false"
    android:banner="@drawable/ic_launcher_logo_tv"
    android:hardwareAccelerated="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:logo="@drawable/ic_launcher_logo_tv"
    android:theme="@style/AppTheme">
    <activity android:name=".xxx.activity.SplashActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
        </intent-filter>
    </activity>


    <!-- Activities for TV -->
    <activity
        android:name=".xxx.activity.HomeActivityForTv"
        android:exported="true"
        android:theme="@style/CustomLeanbackTheme">

        <!-- Receives the search request. -->
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
            <!-- No category needed, because the Intent will specify this class component -->
        </intent-filter>

        <!-- Points to searchable meta data. -->
        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />

    </activity>

    <activity
        android:name=".xxx.activity.SearchActivityForTv"
        android:theme="@style/CustomLeanbackTheme"
        android:exported="true"/>

    <activity android:name=".xxx.oreotv.AppLinkActivity">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data
                android:host="app"
                android:scheme="xxxtv" />
        </intent-filter>
    </activity>

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id" />

    <service
        android:name=".xxx.oreotv.jobservice.SyncChannelJobService"
        android:exported="false"
        android:permission="android.permission.BIND_JOB_SERVICE" />

    <service
        android:name=".xxx.oreotv.jobservice.SyncProgramsJobService"
        android:exported="false"
        android:permission="android.permission.BIND_JOB_SERVICE" />

    <service
        android:name=".xxx.oreotv.contentProvider.FetchDiretteService"
        android:exported="true"
        android:permission="android.permission.BIND_JOB_SERVICE" />

    <service
        android:name=".xxx.oreotv.receiver.BootService"
        android:exported="true"
        android:permission="android.permission.BIND_JOB_SERVICE" />

    <provider
        android:name=".xxx.oreotv.contentProvider.LiveProvider"
        android:authorities="xx.xxx.xxx"
        android:exported="false"
        android:permission="xx.xxx.permission">
    </provider>

    <receiver
        android:name=".xxx.oreotv.receiver.BootCompletedReceiver"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.REBOOT" />
            <action android:name="android.media.tv.action.INITIALIZE_PROGRAMS" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>

</application>

@Fleker

Try adding it as a separate intent-filter, instead of having it alongside the LAUNCHER category. (For SplashActivity)

@andrewger157

In this way?

   <activity android:name=".xxx.activity.SplashActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
        </intent-filter>
    </activity>

What I do not explain is that until the last release (August 2018) I have never had problems….

@andrewger157

I have tried to upload a new apk with this manifest, but I have the same error

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.android.providers.tv.permission.READ_EPG_DATA"/>
<uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA"/>
<uses-permission android:name="com.android.permission.BIND_JOB_SERVICE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
<uses-feature android:name="android.software.leanback" android:required="true"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<application android:allowBackup="false" android:banner="@drawable/ic_launcher_logo_tv" android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:largeHeap="true" android:logo="@drawable/ic_launcher_logo_tv" android:name="xx.xxx.Application" android:supportsRtl="true" android:theme="@style/AppTheme">
    <activity android:name="xx.xxx.activity.SplashActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity android:exported="true" android:name="xx.xxx.activity.HomeActivityForTv" android:theme="@style/CustomLeanbackTheme">
        <intent-filter>
            <action android:name="android.intent.action.SEARCH"/>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
        </intent-filter>
        <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/>
    </activity>
    <activity android:exported="true" android:name="xx.xxx.activity.SearchActivityForTv" android:theme="@style/CustomLeanbackTheme"/>
    <activity android:name="xx.xxx.oreotv.AppLinkActivity">
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:host="app" android:scheme="xxxtv"/>
        </intent-filter>
    </activity>
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    <service android:exported="false" android:name="xx.xxx.oreotv.jobservice.SyncChannelJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
    <service android:exported="false" android:name="xx.xxx.oreotv.jobservice.SyncProgramsJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
    <service android:exported="true" android:name="xx.xxx.oreotv.contentProvider.FetchDiretteService" android:permission="android.permission.BIND_JOB_SERVICE"/>
    <service android:exported="true" android:name="xx.xxx.oreotv.receiver.BootService" android:permission="android.permission.BIND_JOB_SERVICE"/>
    <provider android:authorities="xx.xxx" android:exported="false" android:name="xx.xxx.oreotv.contentProvider.DiretteProvider"/>
    <receiver android:exported="true" android:name="xx.xxx.oreotv.receiver.BootCompletedReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
            <action android:name="android.intent.action.REBOOT"/>
            <action android:name="android.media.tv.action.INITIALIZE_PROGRAMS"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </receiver>
    <activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize" android:name="com.facebook.FacebookActivity" android:theme="@style/com_facebook_activity_theme"/>
    <activity android:name="com.facebook.CustomTabMainActivity"/>
    <activity android:name="com.facebook.CustomTabActivity"/>
    <activity android:exported="false" android:label="" android:name="pub.devrel.easypermissions.AppSettingsDialogHolderActivity" android:theme="@style/EasyPermissions.Transparent"/>
    <receiver android:exported="false" android:name="com.google.android.gms.cast.framework.media.MediaIntentReceiver"/>
    <service android:name="com.google.android.gms.cast.framework.media.MediaNotificationService"/>
    <service android:name="com.google.android.gms.cast.framework.ReconnectionService"/>
    <activity android:name="com.novoda.downloadmanager.lib.SizeLimitActivity"/>
    <activity android:excludeFromRecents="true" android:exported="false" android:name="com.google.android.gms.auth.api.signin.internal.SignInHubActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
    <service android:exported="true" android:name="com.google.android.gms.auth.api.signin.RevocationBoundService" android:permission="com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION"/>
    <service android:exported="true" android:name="com.google.firebase.messaging.FirebaseMessagingService">
        <intent-filter android:priority="-500">
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>
    <provider android:authorities="xx.xxx.androidtv.crashlyticsinitprovider" android:exported="false" android:initOrder="100" android:name="com.crashlytics.android.CrashlyticsInitProvider"/>
    <meta-data android:name="android.support.VERSION" android:value="26.0.2"/>
    <provider android:authorities="xx.xxx.androidtv.MarketingInitProvider" android:exported="false" android:name="com.facebook.marketing.internal.MarketingInitProvider"/>
    <provider android:authorities="xx.xxx.androidtv.FacebookInitProvider" android:exported="false" android:name="com.facebook.internal.FacebookInitProvider"/>
    <receiver android:exported="false" android:name="com.facebook.CurrentAccessTokenExpirationBroadcastReceiver">
        <intent-filter>
            <action android:name="com.facebook.sdk.ACTION_CURRENT_ACCESS_TOKEN_CHANGED"/>
        </intent-filter>
    </receiver>
    <activity android:configChanges="keyboardHidden|orientation|screenSize" android:name="com.twitter.sdk.android.tweetui.PlayerActivity" android:theme="@style/MediaTheme"/>
    <activity android:name="com.twitter.sdk.android.tweetui.GalleryActivity" android:theme="@style/MediaTheme"/>
    <service android:exported="false" android:name="com.google.firebase.components.ComponentDiscoveryService">
        <meta-data android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
        <meta-data android:name="com.google.firebase.components:com.google.firebase.iid.Registrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
    </service>
    <receiver android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementReceiver"/>
    <receiver android:enabled="true" android:exported="true" android:name="com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" android:permission="android.permission.INSTALL_PACKAGES">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER"/>
        </intent-filter>
    </receiver>
    <service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementService"/>
    <service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
    <receiver android:exported="true" android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE"/>
        </intent-filter>
    </receiver>
    <service android:exported="true" android:name="com.google.firebase.iid.FirebaseInstanceIdService">
        <intent-filter android:priority="-500">
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>
    <activity android:exported="false" android:name="com.google.android.gms.common.api.GoogleApiActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
    <provider android:authorities="xx.xxx.androidtv.firebaseinitprovider" android:exported="false" android:initOrder="100" android:name="com.google.firebase.provider.FirebaseInitProvider"/>
    <activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:exported="false" android:name="com.google.android.gms.ads.AdActivity" android:theme="@android:style/Theme.Translucent"/>
    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
    <service android:exported="false" android:name="com.evernote.android.job.v21.PlatformJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
    <service android:exported="false" android:name="com.evernote.android.job.v14.PlatformAlarmService" android:permission="android.permission.BIND_JOB_SERVICE"/>
    <service android:exported="false" android:name="com.evernote.android.job.v14.PlatformAlarmServiceExact"/>
    <receiver android:exported="false" android:name="com.evernote.android.job.v14.PlatformAlarmReceiver">
        <intent-filter>
            <action android:name="com.evernote.android.job.v14.RUN_JOB"/>
            <action android:name="net.vrallev.android.job.v14.RUN_JOB"/>
        </intent-filter>
    </receiver>
    <receiver android:exported="false" android:name="com.evernote.android.job.JobBootReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
            <action android:name="android.intent.action.QUICKBOOT_POWERON"/>
            <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
            <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
        </intent-filter>
    </receiver>
    <service android:enabled="false" android:exported="true" android:name="com.evernote.android.job.gcm.PlatformGcmService" android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE">
        <intent-filter>
            <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/>
        </intent-filter>
    </service>
    <service android:exported="false" android:name="com.evernote.android.job.JobRescheduleService" android:permission="android.permission.BIND_JOB_SERVICE"/>
    <activity android:exported="false" android:name="com.twitter.sdk.android.tweetcomposer.ComposerActivity" android:windowSoftInputMode="adjustResize|stateVisible"/>
    <service android:enabled="true" android:exported="false" android:name="com.twitter.sdk.android.tweetcomposer.TweetUploadService"/>
    <activity android:configChanges="orientation|screenSize" android:excludeFromRecents="true" android:exported="false" android:name="com.twitter.sdk.android.core.identity.OAuthActivity"/>
    <activity android:configChanges="orientation|screenSize" android:excludeFromRecents="true" android:exported="false" android:icon="@drawable/tw__transparent" android:label="@string/kit_name" android:name="com.twitter.sdk.android.core.identity.ShareEmailActivity"/>
</application>

@andrewger157

@AndyGOBrien

I have this issue as well. From what I can tell i have everything in my manifest that needs to be there but for some reason the play console is saying that my apk does not contain the intent filter for LEANBACK_LAUNCHER. Can someone assist?

@andrewger157

Hi, unfortunately I did not find the cause of this problem, but I published the app ignoring the warning and the app is working properly.

Я создаю приложение для Android для телевизора и устанавливаю тему как тему. Leanback определяется в библиотеке поддержки android-support-v17-leanback.jar. Но когда я создаю свое приложение, возникает ошибка, говорящая, что «Ошибка: не найден ресурс, соответствующий заданному имени (в «теме» со значением «@style/Theme.Leanback»)«
Я добавил библиотеку android-support-v17-leanback для построения пути, но все равно получаю ту же ошибку.

Даже создал библиотеку android-support-v17-leanback, импортировав ее в eclipse, и я вижу идентификатор ресурса в файле R.txt проекта, и я добавил этот построенный проект в свое приложение, но все равно с той же ошибкой.

Что-то я пропустил ?? Пожалуйста, предложите некоторые мысли для решения вышеуказанной проблемы.

Спасибо, рассказчик

3 ответа

Добавьте appcompat-v7 и Leanback в раздел зависимостей в build.gradle.

compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:leanback-v17:23.1.1'

В style.xml

<style name="AppTheme" parent="@style/Theme.Leanback">

См.: https://developer.android.com/tools/support -library/features.html#v17-leanback

В AndroidManifest.xml под основным действием (Launcher)

<intent-filter>               

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LEANBACK_LAUNCHER" />

</intent-filter>

Пример build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.COMPANYNAME.something"
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:leanback-v17:23.1.1'
    compile 'com.android.support:design:23.1.1'
}


11

Vadim Kotov
17 Июл 2017 в 13:24

У меня была такая же проблема с использованием Android Studio. Он волшебным образом начал работать после «Файл»> «Недействительные кеши / Перезапустить».


3

Darrell
25 Май 2015 в 02:59

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Запуск bitlocker обнаружена внутренняя ошибка
  • Защита от ошибок пока йоке
  • Запузырились обои после поклейки как исправить
  • Защита от непреднамеренных ошибок бережливое производство
  • Запуганная собака как исправить

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии