2017-01-31 6 views
1

я создал два отдельных приложений с помощью консоли разработчика Google Play:Два Ароматы приложения на одном устройстве

  • "MyApp" с ID com.myname.app (для prod аромата)
  • "MyApp Stage" с удостоверением com.myname.appStage (для stage вкуса)

развернуть эти ароматы к соответствующим каналам, с использованием беты-com.github.triplet.play задачи в Gradle.

Когда я пытаюсь установить оба варианта на одном устройстве, Google Play дает мне error: -505. Если я удалю первую установленную версию, я смогу успешно установить вторую.

Как я могу видеть in this tutorial, этого должно быть достаточно.

Любые идеи, что не так?

Вот мой Gradle фрагмент сценария:

def getGoogleApiJsonFile() { 
    (...) 
} 
android { 
    (...) 

    defaultConfig { 
     applicationId "com.myname" 
     (...) 
    } 
    buildTypes { 
     release { 
      (...) 
      signingConfig signingConfigs.release 
     } 
    } 
    productFlavors { 
     prod { 
      applicationIdSuffix '.app' 
     } 
     stage { 
      applicationIdSuffix '.appStage' 
     } 
     dev { 
      applicationIdSuffix '.appDevelop' 
      (...) 
     } 
    } 
    play { 
     jsonFile = getGoogleApiJsonFile() 
     track = 'beta' 
    } 
    (...) 
} 

А вот некоторые фрагменты AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.myname"> 

    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

    <uses-feature android:name="android.hardware.camera" 
     android:required="true" /> 

    <application 
     android:name=".App" 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme" 
     android:networkSecurityConfig="@xml/network_security_config"> 

     <activity 
      android:name=".login.LoginActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
     (... more activities here ...) 
     <provider 
      android:authorities="com.myname.fileprovider" 
      android:name="android.support.v4.content.FileProvider" 
      android:exported="false" 
      android:grantUriPermissions="true"> 
      <meta-data 
       android:name="android.support.FILE_PROVIDER_PATHS" 
       android:resource="@xml/file_provider_paths" 
       /> 
     </provider> 

     (... meta-data for io.fabric.ApiKey here...) 

    </application> 

</manifest> 
+0

у вас есть ContentProvider в манифесте? – Saurabh

+0

Да, у меня есть FileProvider. –

+2

Итак, я полагаю, мне нужно изменить полномочия «FileProvider». Должен ли я следовать [этому подходу] (http://stackoverflow.com/questions/16777534/using-build-types-in-gradle-to-run-same-app-that-uses-contentprovider-on-one-dev) ? –

ответ

1

поскольку у вас есть контент-провайдера в вашем приложении, вы должны следовать this