Firebase test-lab uploaded APK does not specify a main launcher activity - android

i'm trying to running a test lab in firebase for my TV application, made with Leanback api and i have the following error message: "The uploaded APK does not specify a main launcher activity."
The application manifest does specify a LEANBACK_LAUNCHER intent-filter and the application is published on the play store and it works fine.
Anyone have any suggestions about it?
Thank you so much
<activity
android:name=".SplashActivity"
android:label="#string/app_name"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>

Related

Single Activity intent.action.VIEW with Crashlytics-Beta causing two instances of App running at same time

i have run into very strange behavior of crashlytics beta when tester claims he is able to run two instances of app at the same time.
Log is telling me that its completely same packageName so we cant distinguish from which that log came.
I did some research and beta is propably running it inside their app with something like this:
Intent i = getPackageManager().getLaunchIntentForPackage("com.package.ofapp");
startActivity(i);
with combination of action.View in manifest its causing to run two instances of the app
<activity android:name="com.kebab.KebabApp">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
So i would say its ok. Just lets get rid of the action.View.
<action android:name="android.intent.action.VIEW" />
After that its start screaming at me:
App is not indexable by Google Search; consider adding at least one
Activity with an ACTION-VIEW intent-filler. See issue explanation for
more details.
So i have to put ignoring GoogleAppIndexingWarning into lint because i am using google single app standard combining with crashlytics beta ?
Here is my manifest #HB
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="package">
<!-- permissions -->
<application
android:name="package"
android:allowBackup="true"
android:icon="${appIcon}"
android:label="#string/app_name"
android:roundIcon="${roundIcon}"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity android:name="package.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

Android App not installed with USB debug

I have a problem when I try to debug the App on my Phone. The App works, but It is not installed on the device. When I created the project I selected a project without Activity (option: "Add No Activity"). If I create an App with a blank Activity, this is installed when I launch the debug. I'm using Android Studio for the project.
What can I do? Thanks!
Because you have to Specify Your App's Launcher Activity. You should put this line into your manifest in actvity tag like this, For more reference check this link Specify Your App's Launcher Activity
<activity
android:name=".DemoActivity"
android:label="#string/app_name"
android:windowSoftInputMode="adjustResize|stateVisible" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.categor.LAUNCHER" />
</intent-filter>
</activity>
Problem solved!
Android Studio is stupid, it adviced me to write this in capital letters
<action android:name="ANDROID.INTENT.ACTION.MAIN" />
<category android:name="ANDROID.INTENT.CATEGORY.LAUNCHER" />
instead
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />

Wear emulator shows handheld activity launcher class

I am trying to sync Mobile handheld device to android wear, connection was done successfully but when comes to wear emulator it launches handheld main activity
My handheld manifest file:
<activity
android:name=".MainActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER" ></category>
</intent-filter>
</activity>
my wear manifest manifest file
<activity
android:name=".WearActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER" ></category>
</intent-filter>
</activity>
What am i forgetting or something missing
help me out
thnx in advance for help
Yes, It will show handheld device's MainActivity in Watch because you have installed handheld device's apk in Watch. You have to change module from app to wearable for installing like,
Use following module to install,
Instead of following one,

no launcher activity found smartatch

I'm trying to run sample for Sony site.
I attached SmartExtensionAPI and SmartExtensionUtils. I used Properties->Android->Library and checked is library.
When I ran a sample (for example HelloWidget) on Eclipse, I get this error on the console:
HelloWidget] No Launcher activity found!
HelloWidget] The launch will only sync the application package on the device!
But the installation is done... I can see the application is installed on my smartphone and I can see too on SmartConnect but not in the smartwatch.
Does anyone have an idea of what I'm doing wrong ?
EDIT:
AndroidManifest.xml
<activity android:name="com.example.sonymobile.smartextension.hellowidget.HelloWidgetPreferenceActivity"
android:label="#string/preference_activity_title" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
This is because no activity had set as a launcher to run when app is launched
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
no intent filter will be there in the code's manifest, just check it.

Android App not compatible with devices that sideload Google Play

I have an app which has been deployed to Play and is compatible with any device running 2.1 or later; no special restrictions or requirements defined in AndroidManifest.xml.
There have been several complaints from users trying to install the app via Google Play but getting messages that it is not compatible. In all of these cases sideloading the app works perfectly.
Digging a little deeper into the problem it appears that in all cases, the people reporting the problem are using a device that did not ship with Google Play installed. IE. the device probably failed Google's CTS.
Having said that, they are able to install other apps via Google Play but not ours. Again, sideloading our app onto these devices works fine. Does anybody know why this might be? I assume it must be something I am doing incorrectly in AndroidManifest.xml but I see nothing suspicious.
EDIT: Here's the AndroidManifest.xml, altered to protect the names of the innocent:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.foo.bar"
android:versionCode="1"
android:versionName="#string/global_app_version">
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application android:label="#string/global_app_short_name" android:icon="#drawable/app">
<activity android:name=".HomeActivity"
android:theme="#android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="#string/global_app_short_name">
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".AActivity"
android:theme="#android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="#string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<activity android:name=".BActivity"
android:theme="#android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="#string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<activity android:name=".CActivity"
android:launchMode="singleTask"
android:theme="#android:style/Theme.Black.NoTitleBar"
android:windowSoftInputMode="stateHidden">
<intent-filter android:label="#string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<activity android:name=".DActivity"
android:launchMode="singleTask"
android:theme="#android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="#string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<activity android:name=".EActivity"
android:theme="#android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="#string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<activity android:name=".FActivity"
android:theme="#android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="#string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<!-- This activity is invoked whenever an xxx is opened -->
<activity android:name=".GActivity"
android:theme="#android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="#string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.EDIT"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:mimeType="application/xxx"/>
<data android:mimeType="application/yyy"/>
<data android:mimeType="application/zzz"/>
<data android:mimeType="application/aaa"/>
<data android:mimeType="application/bbb"/>
</intent-filter>
</activity>
</application>
</manifest>
I found the culprit - Copy Protection was enabled. From Google's notes on the setting:
http://developer.android.com/guide/google/play/filters.html
To copy protect an application, set copy protection to "On" when you
configure publishing options for your application. Google Play will
not show copy-protected applications on developer devices or
unreleased devices.
In other words, having to side-load Google Play is just a side effect of being an "unreleased device" / device that fails the Google CTS. In any case, disabling copy protection resolved the issue.
Maybe the hardware they are running is not compatible with your app? Maybe you require a touch screen and they don't have it; maybe you require telephony and they don't have it?
Note that depending on your target api you might get some implicit hardware requirements.
Anyway, trying to get a log from them would be most helpful!
Maybe the affected users can try and reset the Google Play Store app on their devices:
Menu --> Settings --> Apps --> Google Play Store
Then click "Force close" and "Clear data"
Then start Google Play Store again, login, and try to install your app again.
If you have any in-app products or if you are selling the application for money then Google Play automatically filters you out of certain countries it doesn't support billing for. You can email Google to ask here.

Categories

Resources