我对Android编程非常陌生,而且我一直试图找出为什么我的应用程序在按下按钮时强行关闭。我把它缩小到了几个方面。
一个问题;清单xml中是否可以有多个<application>
标记?
这是我的代码:
<?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;
}
}
非常感谢任何帮助。
答案 0 :(得分:18)
根据documentation清单文件,只有一个的应用元素有效。
只有&lt; manifest&gt;和&lt; application&gt;元素是必需的,它们各自 必须存在且只能出现一次。
答案 1 :(得分:8)
我认为您想要的是使用自定义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>
请参阅信息here
答案 2 :(得分:0)
只需要'manifest'和'application'元素,它们必须存在并且只能出现一次。大多数其他人可能会多次出现或者根本不出现 - 尽管至少有一些人必须出现才能使清单完成任何有意义的事情。