I want to add Google Analytics to my app. I made the following changes according to instructions from google:
Code
<service android:name="com.DriverNotes.AndroidMobileClient.GcmIntentService" />
<service android:name=" com.google.android.gms.analytics.CampaignTrackingService" />
but I am getting this error in the Manifest file:
Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]
I tried removing the ' ' (space) symbol in ...oid:name=" com.google.androi... but after restart it returns.
When your IDE encounters a build error in the manifest, it is probably opening the build-generated manifest file to display the error. Any edits to this file have no effect, as it will be overwritten during the next build. Make sure you edit instead the AndroidManifest.xml file located somewhere under your /src directory.
Related
Can’t install because provider name com.facebook.app.FacebookContentProviderundefined (in package io.ionic.sxxxx) is already used by io.ionic.yyyyy]"
This is listed in a few android manifest files
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProvider"
android:exported="true" />
on build I get
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProviderundefined"
android:exported="true" />
— notice the undefined ----- should I be defining something somewhere? Is there another solution? Basically I have a pair of apps that will not install at the same time on a device because this output is the same. My understanding is undefined should be my facebook id. I do have a variety of values defined in my android strings file. I have seen a few answers from a couple years ago on here (Android Facebook content provider authority) , but the solutions do not work as the files in my android directory are different as are their contents. Any help would be much appreciated!
<string name="title_activity_main">xxxx</string>
<string name="package_name">io.ionic.xxxx</string>
<string name="custom_url_scheme">io.ionic.xxxx</string>
<string name="fb_app_id">xxxxx</string>
<string name="facebook_app_id">xxxxx</string>
<string name="fb_app_name">xxxxx</string>
<string name="fb_login_protocol_scheme">fbxxxxxx</string>
<string name="fb_auto_log_app_events_enabled">true</string>
<string name="fb_advertiser_id_collection_enabled">true</string>
I have tried deleting all of the tags from all of the android manifest files, but they are generated on build. I have tried adding a string called authority in my string.xml file. I have struggeled to figure out how to implement the solutions here, as they dont exactly align with the files in my ionic project. Android Facebook content provider authority.
There is an open issue about this on GitHub:
https://github.com/cordova-plugin-facebook-connect/cordova-plugin-facebook-connect/issues/100
Did you try the temporary solutions provided in the comments?
HCJSolutions commented on Dec 10, 2021
I found a temporary solution is add ${applicationId}
modified the platforms\android\app\src\main\AndroidManifest.xml find a
node 123456789"
android:exported="true"
android:name="com.facebook.FacebookContentProvider" />
or
change it at
plugin folder plugins\cordova-plugin-facebook-connect\plugin.xml find
the line <provider
android:authorities="com.facebook.app.FacebookContentProvider${applicationId}$APP_ID"
and
apren commented on Apr 24:
Another temporary solution:
Set any APP_ID, for example APP_ID = "app_package_name" After init app
use code
facebookConnectPlugin.setApplicationId('your_facebook_app_id')
After integrating RN into an existing Android project, I get the following error:
Error: Package name not found in /home/.../AndroidManifest.xml at Object.projectConfig (/home/.../rn_integrated_app/node_modules/#react-native-community/cli-platform-android/build/config/index.js:74:11) at Object.get project [as project]
As I understand the problem is that there is no package attribute in the relevant AndroidManifest.xml file. Since my project has many flavors, the package attribute is added dynamically, while compiling, through app/build.gradle:
def pkgDataEntry = getRightValue(packagesData, variantMap)
variant.getMergedFlavor().applicationId = pkgDataEntry.pkg
So that the final merged manifest file does have the package attribute.
The error occurs here(#react-native-community/cli-platform-android/build/config/index.js):
const packageName = userConfig.packageName || getPackageName(manifest);
if (!packageName) {
throw new Error(`Package name not found in ${manifestPath}`);
}
Is there a way to make RN read the merged manifest file?
If not, how can I modify userConfig to contain the package name? I couldn`t find anything about it in the docs.
Thank you
For me, the solution was to add the "package" tag to the manifest tag.
I didn't have to create another dummy folder.
The manifest open tag now looks like this:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yourProjectName">
If anybody encounters the same issue, when having multiple flavors and AndroidManifest.xml files,here`s my conclusion:
RN has some kind of a bug that it requires the first folder alphabetically, in android/app/src, which has AndroidManifest.xml file,to have the package attribute. Otherwise, it will throw an error.
A simple solution would be to create a dummy folder, e.g aaa (first alphabetically) and to create AndroidManifest.xml inside of it, with the following attribute - package:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="aaa"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission
android:name="android.permission.GET_ACCOUNTS"
tools:node="remove"/>
</manifest>
For me, this error start after upgrade the sdkVersion from 31 to 33 and gradle version.
I did check the changes in git, and notice that the package attribute was removed from AndroidManifest.xml.
So I did add this attribute again.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yourpackage">
I have gotten signed my wear app , as per said by developer site . and also I have imported that into my
raw folder with the name of "wear_release.apk"
I have created xml folder in res in the device app and also I have put the necessary with correct package name these are as follows
<wearableApp package="wearable.app.package.name">
<versionCode>1</versionCode>
<versionName>1.0</versionName>
<rawPathResId>wearable_app</rawPathResId>
</wearableApp>
but when i put meta tag into the manifest file of the handheld device and try to build and sign the mobile app I got error
<meta-data android:name="com.google.android.wearable.beta.app"
android:resource="#xml/wearable_app_desc"/>`
i got error
Error:(52, 13) Execution failed for task
':mobile:processReleaseManifest'.
Manifest merger failed : Attribute meta-data#com.google.android.wearable.beta.app#resource
value=(#xml/wear_release_desc) from AndroidManifest.xml:52:13 is also
present at AndroidManifest.xml:5:20
value=(#xml/android_wear_micro_apk) Suggestion: add
'tools:replace="android:resource"' to element at
AndroidManifest.xml:50:9 to override
can any one tell me what is the reason ?
your apk's name is wear_release.apk, but the name you write in the wearable_app_desc is wearable_app, you must write the same name, wear_release
If you use gradle, and it seems to be the case, you don't need to put your apk into the raw folder, from memory it's only for Eclipse and ADT. When using gadle, just put the line wearApp project(':nameOfYourWearProject') as a child element of dependencies in the file "build.gradle" of your handheld project.
Recently updated an APK and chose the option to reuse the expansion file (with videos).
Old version
1(1.0.0) -> main.1.br.com.myapp.obb
New version
2(1.0.1) -> selected the same
The application has been updated and usually recognized the file expansion.
But when you play the video the following error occurs:
E/AndroidRuntime(12752): java.lang.NullPointerException
E/AndroidRuntime(12752): at com.android.vending.expansion.zipfile.APEZProvider.openAssetFile(APEZProvider.java:182)
Does anyone have a solution to this problem ?
Thanks a lot
Problem solved!
Was necessary to add the tags <meta -data> in AndroidManifest to inform the version of OBB file.
<provider
android:name="br.com.appname.provider.ProviderVideoZipUri"
android:authorities="br.com.appname.provider.ProviderVideoZipUri"
android:exported="false">
<meta-data android:name="mainVersion" android:value="1"></meta-data>
<meta-data android:name="patchVersion" android:value="2"></meta-data>
</provider>
In this LINK , the person who helped me, explain better.
Trying to make an app using phonegap 1.4.1 + phonegap's childbrowser plugin.
I've been following guides and digging a lot on the subject, but I'm stuck on an error I can't understand.
I've moved the childbrowser.java to the correct location and added this to the plugins.xml:
<plugin name="ChildBrowser" value="com.phonegap.plugins.childBrowser.ChildBrowser"/>
added this to the androidmanifest.xml:
<activity android:name="com.phonegap.DroidGap" android:label="#string/app_name">
<intent-filter>
</intent-filter>
</activity>
But I get an error on the ChildBrowser.java on this line:
package com.phonegap.plugins.childBrowser;
telling me that the declared package com.phonegap.plugins.childBrowser does not match the expected package com.phonegap.plugins.ChildBrowser.
I changed it to capital C in childbrowser.java, and the error went away, but ofc, the plugin didn't work.
i found this topic, discussing it, but no appearant fix
http://comments.gmane.org/gmane.comp.handhelds.phonegap/11993
I have tried renaming the plugin name in plugins.xml
Earlier, i was trying to whitelist some url's, but kept getting them blocked, so i'm thinking there's something wrong with my /res/xml directory? its meant to be projectroot/res/xml, right?
Any help will be greatly appreciated.
If you've created the package "com.phonegap.plugins.ChildBrowser" in your Eclipse project then you need to modify the plugins.xml line to be:
<plugin name="ChildBrowser" value="com.phonegap.plugins.ChildBrowser.ChildBrowser"/>
to match the actual package of the plugin.
Make sure the ChildBrowser java file is in the package you declared in plugins.xml, which is in root/res/xml/ folder.
You need to add the javascript file to your main page, so the page can call it's methods. Check that the javascript file contents are consistent with you java file location - for example the packages may be different.
Add the right permissions
Make sure you call the plugin from javascript the right way, for example in phonegap 1.3 it goes like this:
window.plugins.childBrowser.onLocationChange = function(loc)
{
...