AndroidManifest.xml с несколькими тегами приложений - PullRequest
5 голосов
/ 21 сентября 2011

Я очень новичок в программировании на Android и пытаюсь понять, почему мое приложение принудительно закрывается нажатием кнопки.Я сузил это до нескольких вещей.

Один вопрос;Можно ли иметь более одного тега <application> в манифесте xml?

Вот мой код:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.dummies.android.beergoggles"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".MainActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Result" android:label="@string/app_name">        </activity>
</application>
<application android:name="MyApp" 
   android:icon="@drawable/icon" 
   android:label="@string/app_name2"></application>

Я исследовал, нонашел только смутный пост о создании нового файла манифеста для нового приложения.Приложение MyApp - это просто приложение для «глобальной переменной», так как я думаю, что без нового приложения это сделать невозможно.

Вот код для MyApp, если он помогает:

import android.app.Application;

public class MyApp extends Application{

public static int resultCount;

public int getCount(){
    return resultCount;
  }
public void setCount(int c){
    resultCount = c;
}
}

Любая помощь будет высоко ценится.

Ответы [ 3 ]

17 голосов
/ 22 сентября 2011

В соответствии с документацией файл манифеста только с одним приложением действителен.

Требуются только элементы и , каждый из них должен присутствовать, и может произойти только один раз .

8 голосов
/ 21 сентября 2011

Я думаю, что вы хотите использовать свой собственный Application в качестве основного Application.

Таким образом, вы не добавляете новый <application>, а просто указываете его имя для основного <application> (вам необходимо указать его полный пакет).

<application android:icon="@drawable/icon" android:label="@string/app_name" android:name:"com.mypackage.MyApp"> <!-- Added the android:name -->
    <activity android:name=".MainActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Result" android:label="@string/app_name">        </activity>
</application>

См. Информацию здесь

0 голосов
/ 09 июня 2014

Требуются только элементы manifest и application, каждый из которых должен присутствовать и может встречаться только один раз.Большинство других может происходить много раз или не происходить вообще - хотя, по крайней мере, некоторые из них должны присутствовать для манифеста, чтобы выполнить что-либо значимое.

...