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 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
Step2: Copy Android app configuration
Step3: Change configuration name to tvApp
Step4: Change Launch Activity to your TV activity
answered Jul 21, 2021 at 21:03
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 | ||||||||||||||||
|
||||||||||||||||||
+ leanback-v17-25.2.0-javadoc.jar | 4fa7e366c55db0df31e569e2508fdf19 | 261.00 B | ||||||||||||||||
|
Типичные ошибки 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.
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»
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>
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>
Try adding it as a separate intent-filter, instead of having it alongside the LAUNCHER
category. (For SplashActivity
)
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….
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>
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?
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