ngageoint / geopackage-android

GeoPackage Android Library
http://ngageoint.github.io/geopackage-android
MIT License
94 stars 33 forks source link

Android Manifest conflict #65

Closed jcdoster closed 3 years ago

jcdoster commented 3 years ago

Please fill out as much known and relevant information as possible.

Version Information:

Expected Results:

Add geopackage-android dependency to gradle, have it compile correctly for an ATAK plugin app. implementation 'mil.nga.geopackage:geopackage-android:4.0.0'

Observed Results:

Output:

See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.

Execution failed for task ':processDebugManifest'.

Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 is also present at [androidx.core:core:1.1.0] AndroidManifest.xml:24:18-86 value=(androidx.core.app.CoreComponentFactory). Suggestion: add 'tools:replace="android:appComponentFactory"' to element at AndroidManifest.xml:20:5-50:19 to override.

Steps to Reproduce:

  1. Step One
  2. Step Two
  3. ...

Relevant Code:

// Code to reproduce the problem?

Test Files:

Additional Information:

bosborn commented 3 years ago

Appcompat (androidx.appcompat:appcompat) is a required dependency for this library to build and can not be removed. The SQLite Android Archive file is provided by SQLite and does not have that dependency.

Manifest Merging should be handled by the utilizing library or application. The best option would be to migrate to AndroidX. The other option is to resolve it through the error message suggestion. Suggestion: add 'tools:replace="android:appComponentFactory"' to element at AndroidManifest.xml:20:5-50:19 to override. For example, an allowBackup value specified in the SQLite manifest is replaced in this project.

This stack overflow question might be helpful.

jcdoster commented 3 years ago

Thanks Brian.

I was able to get it to compile. Thank you for those suggestions!

I have another challenge now with the basic methods in geopackage-android. It's a bit complicated to explain over email. But if you would be OK with a phone conversation, much obliged.

I am working directly with a special ops homegrown application called ATAK. I have been working with it for some time now. And I would like to discuss how to get the methods in geopackage-android specially to work with ATAK (challenges specifically with the creation of the manager using the ATAK context) or go back to geopackage-java, which is what I was doing before. I can find no version of sqlitejdbc.so that is 64-bit compatible to Android though unfortunately, arm64-v8a.

When this is done, and I'm somehow successful, I'll write something up on GitHub for others working with ATAK and Geopackage manipulation.

My direct email is: jason.doster@vethresearch.com

My cell is: 937-475-2032

Thx! Jason

On Tue, Mar 9, 2021, 2:11 PM Brian Osborn notifications@github.com wrote:

Appcompat https://developer.android.com/jetpack/androidx/releases/appcompat ( androidx.appcompat:appcompat) is a required dependency for this library https://github.com/ngageoint/geopackage-android/blob/f84161ee80cd06131962a059f60004545eac1d6b/geopackage-sdk/build.gradle#L156 to build and can not be removed. The SQLite Android Archive file is provided by SQLite https://sqlite.org/download.html and does not have that dependency.

Manifest Merging should be handled by the utilizing library or application. The best option would be to migrate to AndroidX https://developer.android.com/jetpack/androidx/migrate. The other option is to resolve it through the error message suggestion. Suggestion: add 'tools:replace="android:appComponentFactory"' to element at AndroidManifest.xml:20:5-50:19 to override. For example, an allowBackup value specified in the SQLite manifest is replaced in this project https://github.com/ngageoint/geopackage-android/blob/f84161ee80cd06131962a059f60004545eac1d6b/geopackage-sdk/src/main/AndroidManifest.xml#L8 .

This stack overflow question https://stackoverflow.com/questions/52135251/manifest-merger-fails-for-appcomponentfactory might be helpful.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ngageoint/geopackage-android/issues/65#issuecomment-794393435, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKQB36Y7ISULTTCABFY2CLTTCZXGTANCNFSM4Y4CLAKQ .