I'm a beginner when it comes to both Java and android SDK, and I had some issues that I dealt with to finally be able to run my app, and than I get this error and I just can't figure it out.
So this is the Console:
[2013-09-17 19:59:23 - AndroidFlow] Installation error:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
[2013-09-17 19:59:23 - AndroidFlow] Please check logcat output for more details.
[2013-09-17 19:59:23 - AndroidFlow] Launch canceled!
(Sorry for text fragmentation, it doesn't fit in the same line)
And heres the logcat snap:
Also, heres the Manifest file:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.domiq.androidapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<service android:enabled="true"
android:exported="false"
android:isolatedProcess="false"
android:label="flow service"
android:name="com.domiq.androidapp.appservice"
android:permission="string"
android:process="string" >
</service>
<activity
android:name="com.domiq.androidappp"
android:label="androidapp" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Any suggestions? I've tried a lot of stuff (as you can see nothing is in capital letters etc...)
In the future, copy the text out of LogCat (select the lines, press <Ctrl>-<C> to copy) rather than use screenshots.
That being said, here are some obvious problems:
Your android:name in the <activity> is invalid, as it does not have the name of your Activity class.
The one that is causing your error is the android:process attribute in the <service> element, which is malformed and unnecessary.
I am skeptical that the android:name in your <service> points to a Service implementation class.
I strongly encourage you to get rid of android:isolatedProcess and android:permission, as what you have will probably not work the way you expect.
Are you sure your Activity's name is com.domiq.androidappp. This looks to be the package name.
So change below line to the Activity class Name. Use the Eclipse Manifest editor rather than adding manually
<activity
android:name="com.domiq.androidappp"
You need to remove the android:permission="string" and android:permission="string". It looks like you just copied pasted that incorrectly. You are supposed to replace "string" with the proper values.
Also your android:name under your Activity should be the Activity name, e.g. android:name="com.domiq.androidapp.MyActivity".
Related
I keep getting this message when trying to run the emulator, even though I've put the launcher activity in my manifest.
Does anyone have an idea what I'm doing wrong?
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.libsdl.app"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="12"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="org.libsdl.app.SDLActivity"
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>
Resolved: After some more mucking around in my files, I found that there were multiple AndroidManifest.mk files and I had put the activity in the wrong one. (I had this in the mk file located in the bin folder, instead of the one in root.)
I was having this same issue, and the OP's edit at the bottom of the post was what fixed it. (I would have upvoted, but I do not have any reputation points at this time).
To clarify for anyone in the future: it appears that Eclipse will automatically create a duplicate of the AndroidManifest.xml in the bin directory. This copy is automatically generated off of the one you are supposed to edit on the root directory.
If you edit the manifest in the bin directory, Eclipse will not give you any warning that you are editing the wrong file. You can even save to it, and run validate to ensure that there are no errors. When you run the program, it will actually be overwritten, but for some reason Eclipse tends not to prompt you that the contents have been overridden while you still have the file open.
I installed an instrumentation test APK from Eclipse(Run->Run As Android application) on device as the log shows below.
[2013-08-08 22:14:13 - SettingsTests] /SettingsTests/bin/SettingsTests.apk installed on device
However, on the home screen of the device, somehow the test APK does not show. In Settings->Application Manager, the list shows the test apk correctly.
Any idea what's going on?
The android system info shows:
Source:/data/app/PACKAGE.test.test-1.apk
data:/data/app/PACKAGE.test.test
Here's the test apk's manifest.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="PACKAGE.test.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="17" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="my.package" />
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
Only the activity defined in manifest like below will be shown. You must define at least one activty like that.
<activity
android:name="YourActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
What you are trying to install doesn't have an activity defined in the manifest.
As per the docs
An activity is that implements part of the application's visual user interface.
All activities must be represented by <activity> elements in the manifest file.
Any that are not declared there will not be seen by the system and will never be run.
You can refer the document so as to have an idea how activity works
It's quite normal behavior, as you don't have any activity in your instrumentation package. Didn't you mean to run it as Android JUnit Test?
I keep getting an error that says, "Element type "application" must be followed by either attribute specifications, ">" or "/>"."
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.thenewboston.sammy"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
I'm getting the error right below this:
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
This is the right form, see if you didn't close some tags.
<application android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
...>
<activity ...>
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
As my friend said , check the right format
For me It was like this :
BEFORE :
<activity android:name=".DisplayMessageActivity" android:label="display_message_activity"
</activity>
AFTER:
<activity android:name=".DisplayMessageActivity" android:label="display_message_activity" >
</activity>
Then the error disappeared
In my case, a comment had been placed (by the build tools?) inside the application tag:
<application android:allowBackup="true"
<!-- android:debuggable="true" -->
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/GdxTheme">
After I removed the entire debuggable=true comment line - everything worked.
I just ran into this error for a completely different reason. For some reason Android Studio had replaced every instance of the string name with "name" (e.g. it wrapped them all in double quotes) in my XML. It completely broke everything.
I had to clear out the double quotes from everything, clean the project and rebuild it.
If you're a flutter developer and you're getting this exception you must know there are two AndroidManifest file in your flutter project. One is inside debug folder and another one is main folder. My main folder AndroidManifest is ok and well formatted but AndroidManifest in debug folder is not ok and not well formatted due to a git conflict.
you must fix this.
I have an android app. (built for 1.5) while installing it on my device it creates no error, but while running it, it says "the application is not installed in your phone"..
can any one help me...?
I have tried this installing after uninstalling it for many times...
Manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.testapp"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="#drawable/icon" android:label="#string/app_name">
<activity android:label="#string/app_name" android:name="WelcomeScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="Untitled1"></activity>
<activity android:name="Welcome"></activity>
</application>
</manifest>
Have you got your package name correct? It will be looking for a different application if your package name in the Manifest does not match that of your project
Its an application error. In application there is an manifest file in which we pass two actions ACTION_LAUNCHER and ACTION_MAIN which is not write there thats why this application says "the application is not installed in your phone" please verify from the android developer of this application. IF you have manifest file of this please write down here. i will correct this.
If this answer is useful to you then please tick that this answer is useful to you.
Who or what tells you "is not installed"?
If you have a shortcut on the home screen, this may become stale and you can get this message.
Try going to the list of apps and starting it from there.
I also see potential that the "com.android.*" package you show is causing issues, as this package may be reserved (at least it is not good practice to use it).
Issue solved,
I just copied and deleted the below lines from the manifest file and pasted it again in the same place ...
I dont know how it solved the issue but it just solved it....
<application android:icon="#drawable/icon" android:label="#string/app_name">
<activity android:label="#string/app_name" android:name="WelcomeScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
This is driving me nuts. I'm trying to upload a draft apk to the app store, I'm a windows developer, and this is my first android app, so I don't really have a frame of reference to work from. I export the signed apk, and from the developer console I browse to the apk, select it, and attempt to upload. I receive the message:
The file is invalid: ERROR getting 'android:name' attribute: attribute is not a string value.
I have uploaded this apk to the web, and can successfully download, install, and run the app outside of the market. I've self-signed the apk, and have verified that is done correctly.
Any suggestions would be appreciated.
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.My.PackageName"
android:versionCode="1" android:versionName="1.0.0">
<application android:icon="#drawable/icon" android:label="#string/app_name">
<activity android:name=".Home" android:configChanges="orientation"
android:label="#string/app_name" android:launchMode="standard" android:icon="#drawable/icon">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Preferences" android:label="#string/set_preferences"> </activity>
<activity android:name="com.admob.android.ads.AdMobActivity"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation|keyboard|keyboardHidden"
/>
<meta-data android:value="myValue" android:name="ADMOB_PUBLISHER_ID" />
<meta-data android:value="true" android:name="ADMOB_ALLOW_LOCATION_FOR_ADS" />
</application>
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>`
A missing label attribute on an Activity declaration will not be the reason for aapt debug badging to fail! You can leave them out of your Activity declaration without issues.
A common cause for these failures is a string resource that is declared in one of the translated resources while missing in the non translated, main resource folder.
res
values
strings.xml <-- missing declaration here
values-it
strings.xml <-- of a string declared here and used in manifest as a label
run the aapt command from the /path/to/sdk/build-tools folder to find more information about this error:
aapt debug badging /path/to/apk
Looks like you forgot to set the name attribute or gave an invalid one in the AndroidManifest.xml
I just had the same issue. Found the problem - I'd missed the label from one of my activity declarations. In your case, looks like the 3rd activity.