У меня есть библиотека, которую я использую в качестве базы для всех своих приложений для Android и имеет следующий файл манифеста:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android"
xmlns:tools="http://schemas.android.com/tools"
android:versionCode="36"
android:versionName="1.b" >
<uses-sdk
android:minSdkVersion="5"
android:targetSdkVersion="21"
tools:overrideLibrary="com.facebook.android"/>
Затем я пытаюсь использовать его в одном из моих проектов, который имеет следующий манифест:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android"
xmlns:tools="http://schemas.android.com/tools"
android:versionCode="36"
android:versionName="1.6" >
<uses-library
android:name="com.example.android"
android:required="true"/>
<uses-sdk
android:minSdkVersion="5"
android:targetSdkVersion="21"
tools:overrideLibrary="com.facebook.android"/>
Обратите внимание, что имя используемого пакета одинаково: com.example.android. Поскольку приложение опубликовано в com.example.android, я не могу изменить его для приложения. Что касается библиотеки, то по историческим причинам она имеет такое же имя pacakge. Когда я создаю проект, я получаю следующую ошибку:
FAILURE: сбой сборки с исключением.
- Что пошло не так: выполнение выполнено для задачи ': exampleCom: processDebugResources'.
Ошибка: библиотека использует тот же пакет, что и этот проект: com.example.android. Вы можете временно отключить эту ошибку с помощью android.enforceUniquePackageName = false Однако это временно и будет применяться в версии 1.0
Я не хочу менять имя пакета для библиотеки или приложения. Я не уверен, где добавить "android.enforceUniquePackageName = false". Есть идеи? Кроме того, как решить проблему выше 1.0 (которую я уже использую)?