2017-05-08 88 views
0

對於做一些測試,我需要安裝現有應用程序的測試版本。我已將我的應用從AndroidTimer更名爲AndroidTestTimer,修訂了清單,但只有其中一個應用可以安裝在設備上。卸載後,可以安裝它們中的任何一個。但是,當我嘗試安裝第二個時,設備將其視爲對現有應用程序的更新,並且無法安裝。爲什麼這樣?這些應用程序有不同的名稱。 這是兩個清單文件。無法安裝原始應用程序及其測試版本

對於AndroidTimer:

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

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

    <!-- <uses-permission  android:name="com.android.alarm.permission.SET_ALARM"/> --> 

    <application 
    android:allowBackup="true" 
    android:icon="@drawable/video_television" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme" 
    android:background="?attr/colorPrimary"> 
    <activity 
     android:name=".AdvancedActivity" 
     android:label="@string/advancedMenu" 
     android:theme="@style/AppTheme.NoActionBar"> 

    </activity> 

    <receiver android:name=".MyAlarmReceiver" /> 

    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter android:label="@string/app_name"> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

    </activity> 
</application> 

對於AndroidTestTimer:

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

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

    <!-- <uses-permission  android:name="com.android.alarm.permission.SET_ALARM"/> --> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/video_television" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme" 
     android:background="?attr/colorPrimary"> 

     <receiver android:name=".MyTestAlarmReceiver" /> 

     <activity 
      android:name=".TestAdvancedActivity" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar"> 
      <intent-filter android:label="@string/app_name"> 
       <action android:name="android.intent.action.MAIN" /> 

       <category  android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 

     </activity> 
    </application> 

提前感謝您的任何想法。

+0

這些似乎是目錄名稱,或可能是字符串資源值。與應用程序的應用程序ID /軟件包名稱沒有任何關係。 – CommonsWare

+0

你是否更改過軟件包名稱? –

+0

應用程序名稱更改不起作用,您需要更改軟件包名稱。例如:** package =「com.androidTestTimer」and package =「com.AndroidTimer ** – Ram

回答

0

從測試項目中刪除幾乎所有東西,我發現這個測試應用程序被當作更新原件的原因。在模塊的build.grandle有這樣的部分:

defaultConfig { 
    applicationId "spectorsky.test" 
    minSdkVersion 21 
    targetSdkVersion 24 
    versionCode 1 
    versionName "1.0" 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
} 

那是applicationId怪:該值是相同原始應用程序。這很奇怪,因爲很久以前我重新命名了應用程序,但是applicationId被設置爲相當舊的值,從最初開始,當原始應用程序的名稱包含'test'時。

非常感謝試圖幫助的每個人。特別感謝CommonsWare在他的評論中提到了applicationId

相關問題