2017-01-10 3 views
1

Это следующий вопрос. Вам не нужно, но вы можете read the first question.Установка APK, созданных из одного источника

Вот моя проблема. Я создал два апка из одного источника. Затем я опубликовал оба APK в Google Play Store, каждый из которых является независимым. Скажем, одно приложение называется Cat, а одно - Dog. Теперь у меня такая проблема, что если я установлю Cat на свое устройство, то я не смогу установить Dog, и наоборот. Любая идея, почему это может быть? Код ошибки из PlayStore - «Код ошибки: -505).

EDIT: В ответ на ответы

Я думал, что суффиксы позаботится об этом. Как я могу решить эту проблему и использовать один исходный код для двух APK?

productFlavors{ 
     training{ 
      applicationIdSuffix ".training" 
      versionNameSuffix "-training" 
     } 
     production{ 
//   applicationIdSuffix "" 
//   versionNameSuffix "" 
     } 
    } 

EDIT 2:

Добавление дополнительного манифеста для .training аромата, в результате следующей ошибки

/Users/myname/StudioProjects/appname/app/src/training/AndroidManifest.xml Error: 
    Overlay manifest:package attribute declared at AndroidManifest.xml:2:11-50 value=(com.compname.appname.training) 
    has a different value=(com.compname.appname.training) declared in main manifest at AndroidManifest.xml:2:11-41 
    Suggestion: remove the overlay declaration at AndroidManifest.xml and place it in the build.gradle: 
     flavorName { 
      applicationId = "com.compname.appname.training" 
     } 

Где бы это flavorName пойти точно?

+0

имя пакета имеют важное значение, они должны быть уникальными, андроид ОС признала pac имя кэга, а не имя приложения :) – Roljhon

+0

см. мои добавленные правки. –

+0

В качестве примечания стороны: я думал, что Google Play не разрешает использовать одно и то же имя пакета дважды? В Google Play имена пакетов разные. Однажды имеет суффикс, а другой нет? Это может быть проблема certificate_hash? Я имею в виду certificate_hash в файлах google-services.json? –

ответ

0

Это произойдет потому, что оба APK для одного и того же пакета.

1

В вашем build.gradle,

android.productFlavors { 
    dog { 
    applicationId "com.example.dog" 
    } 
    cat { 
    applicationId "com.example.cat" 
    } 
} 

Теперь вы можете сделать,

$ gradle assembleDogDebug 

или

$ gradle assembleCatDebug 

т.д.

+0

Вот что я получаю, когда звоню через терминал: I типа 'gradle assembleTrainingDebug' и получить от терминала ' bash: gradle: command not found' –

+0

Замените 'gradle' тем же, что вы обычно вызываете град.Может быть, вы используете обертку? Может быть, вы в Windows? –

Смежные вопросы