MonkeyRunner unable to use startActivity - android

The following is my AndroiManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.helloworld"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
I want to launch my app using monkeyrunner but when I give the command
device.startActivity(component='com.exmaple.helloworld/com.example.helloworld.MainActivity')
It doesn't start my app. Am I missing anything. I read Issues using monkeyrunner startActivity but still it didn't work.

Add android:exported="true" line for the activity in AndroidManifest.xml file

device.startActivity(component='com.exmaple.helloworld/com.example.helloworld.MainActivity')
have you tried fixing the typo (exmaple instead of example) ?
device.startActivity(component='com.example.helloworld/com.example.helloworld.MainActivity')

Have you tried device.startActivity(component='com.exmaple.helloworld/.MainActivity')?

You should change activity name in manifest, from:
android:name=".MainActivity"
to
android:name="com.example.helloworld.MainActivity"
then your script will work.

Related

Elements not allowed here in android manifest file

I made a new project in Android studio, and this is my manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cro.perger.rajcica" >
<application
android:allowBackup="false"
android:icon="#drawable/icon"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme" >
<activity android:name=".rajcica" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
When I build my file I get few gradle errors, and I get this debug/manifest file open:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cro.perger.rajcica"
android:versionCode="10"
android:versionName="2.0.1" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="23" />
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme" >
<activity android:name="cro.perger.rajcica.rajcica" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
I get this errors:
URI not registered
element not allowed for (versionCode, versionName, icon, allowBackup, theme, supportsRtl)
Don't know how to resolve this, because many of this attributes are deleted from my manifest file, but not from debug/manifest file :(
Please help
If you removed those lines from the manifest, but they are still in your debug, then it sounds like your manifest is in the wrong folder. Something changed in your directory structure maybe and you did not realize or intend for that to happen.
Get the manifest in the right folder and make sure that you are editing the correct one.
See this related post: Why is Android Studio reporting "URI is not registered"?
It also could be that you are setting them in your build.gradle file - check there.

Android application crashing, manifest issue

Heloo! I am creating an application in Android. I have declared all my activities in Android manifest, including the main one, and when i start it, it says that the activity i have selected as launcher does not exist:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.boacterapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="22" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="MainPage"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="AboutPage"
android:label="title_firskljt_activity">
</activity>
<activity
android:name="RecentSightingsPage"
android:label="title_first_activity">
</activity>
</application>
</manifest>
I have been stuck here for a while, so i'm kindly asking that you could help me identity if i have a problem in my manifest. Thank you in advance!
Make sure MainPage activity is in package "com.example.boacterapp".
Another option: replace short name:
android:theme="#style/AppTheme" >
<activity
android:name="MainPage" <----------------- short
android:label="#string/app_name" >
<intent-filter>
With long name that makes up the full class name of your activity:
android:theme="#style/AppTheme" >
<activity
android:name="com.bla.bla.MainPage" <------------- long
android:label="#string/app_name" >
<intent-filter>
Add "." (dot) before MainPage
as
android:name=".MainPage"
Same for others,so rewrite your manifest as
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.boacterapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="22" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name=".MainPage"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".AboutPage"
android:label="title_firskljt_activity">
</activity>
<activity
android:name=".RecentSightingsPage"
android:label="title_first_activity">
</activity>
</application>
</manifest>
<activity android:name="MainPage"
should be:
<activity android:name=".MainPage"
assuming that your MainPage activity is in the package com.example.boacterapp. If not, you need to provide the fully-qualified name of the MainPage app.
Activity name should have dot prefix, change activity name to .MainPage. Make sure it is inside com.example.boacterapp package

AndroidManifest.xml is getting corrupted when a new activity is created

When i create a new activity for my project, my new activity has errors, i think they are related to the androidmanifest.xml which get some weird lines at start and at end.
This are the lines that eclipse says that has errors
<<<<<<< Original
, >>>>>>> Added
And this is the entire androidmanifest.xml
<<<<<<< Original
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="moran.jonathan.pizzeria"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="moran.jonathan.pizzeria.MainActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="moran.jonathan.pizzeria.Menu"
android:label="#string/title_activity_menu" >
</activity>
</application>
</manifest>
=======
<manifest xmlns:android="http://schemas.android.com/apk/res/android" >
<application>
<activity android:name=".Menu"
android:label="#string/title_activity_menu"
android:parentActivityName="moran.jonathan.pizzeria.MainActivity">
<meta-data android:name="android.support.PARENT_ACTIVITY"
android:value="moran.jonathan.pizzeria.MainActivity" />
</activity>
</application>
</manifest>
>>>>>>> Added
What could be happening?
Thanks in advance
EDIT WITH USEFUL INFO:
Never try to create an activity called Menu, as it seems to be some kind of reserved word and this is why this problem appears
This is because you have merged a conflicted file in git. Remove those lines and remove the repeat code and commit again:
<<<<<<< Original
// (1) this is your original Manifest code
=======
// (2) this is the new code.
>>>>>>> Added
NOTE: Either remove (1) or (2) depending on you need. and remove the extra lines
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="moran.jonathan.pizzeria"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="moran.jonathan.pizzeria.MainActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="moran.jonathan.pizzeria.Menu"
android:label="#string/title_activity_menu" >
</activity>
</application>

Application package 'AndroidManifest.xml' must have a minimum of 2 segments

I read this:
Error in AndroidManifest.xml "must have a minimum of 2 segments" but there is no solution.
Its happen after I change the name of the project by refactor->rename (instead com.example.my app to myapp only) and after that I change the name also in the manifest.
Here is the code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="save_money"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="save_money.MainActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="save_money.Article"
android:label="#string/title_activity_article" >
</activity>
<activity
android:name="save_money.HashmalActivity"
android:label="#string/title_activity_hashmal" >
</activity>
<activity
android:name="save_money.ImageAdapter"
android:label="a" >
</activity>
<activity
android:name="save_money.SavedItems"
android:label="פריטים שמורים" >
</activity>
<activity
android:name="save_money.Screen2HashmalActivity"
android:label="עלות צריכה" >
</activity>
<activity
android:name="save_money.SelectArticle"
android:label="בחר מאמר" >
</activity>
</application>
</manifest>
What it means is the package declaration in your manifest must have at least two portions separated by a period (.). Instead of just saying package="save_money", change it to package="com.save_money". That should remove your error. Likewise, everywhere you specify the name of an activity, you also need to update it there. Best of luck!
My guess is you need to have a minimum of 2 segments for your package name.
So instead of package="save_money Try package="me.save_money" or whatever you want.

Error in Android manifest file

My manifest FILE IS:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.Smsr"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:label="#string/app_name"
android:targetPackage="com.example.Smsr" />
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name" >
<activity
android:name=".SmsrActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".SimpleSmsReciever" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
</manifest>
Error is :smsr does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner in its AndroidManifest.xml
i have two classes here , first is main activity i.e smsrActivity and other is simplesmsreciever class , help me
thanx in advance
I think may be ur problem is you have to set minsdk version and target version. Then it will work
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="20" />
You are missing <uses-library android:name="android.test.runner" /> in application tag.
for more causes and detailed knowledge check out a previous question
Android Eclipse Plugin: Instrumentation Test Runner not specified
try to run your application as android application. right click your application folder and go down to run as --> android application.
I don't know how or why but this worked with me :)

Categories

Resources