为Android项目创建Java包

时间:2012-01-30 18:24:46

标签: android packages

我创建了多个包来更好地构建基于Android的项目。创建这些包后,应用程序不再运行。这是一个小部件应用程序。我注意到需要修改应用程序清单并执行此操作。这似乎没有解决问题。我没有收到任何错误消息,我根本无法从应用程序小部件打开主活动页面。谁能告诉我如何解决这个问题?

更多细节,我最初有一个扁平的项目结构(com.domain.A)。现在我有以下内容:

com.domain.Activities

  • Activity1.java
  • Activity2.java

com.domain.Features

  • Feature1.java
  • Feature2.java

com.domain.Services

  • Service_1.java
  • Service_2.java

等...

以下是清单文件的摘录:

 <activity android:name="com.domain.Activities.Activity1"
            android:theme="@style/Theme.D1"
            android:label="@string/act1"
            />
 <activity android:name="com.domain.Activities.Activity2"
            android:theme="@style/Theme.D1"
            android:label="@string/act2"
            />

 <activity android:name="com.domain.Features.Feature1"
            android:theme="@style/Theme.D1"
            android:label="@string/fea1"
            />
 <activity android:name="com.domain.Features.Feature2"
            android:theme="@style/Theme.D1"
            android:label="@string/fea2"
            />

 <service android:name="com.cmu.Services.Service_1"/>
 <service android:name="com.cmu.Services.Service_2"/>

感谢。

2 个答案:

答案 0 :(得分:1)

在包中移动类后,您如何定义清单中的活动。 (作为一个拇指规则ctrl +点击清单中的活动声明应该带你到类文件,否则链接坏了),它一般更好地保持所有类在你的app的主android包中扩展Activity

编辑:

如果您的MyActivity位于包a.b;

之下

然后.a.b.MyActivity将用于android:清单中的名称点(。)最初指定使用清单包名称中的包前缀..

答案 1 :(得分:0)

您在清单中指定了package,然后您可以使用.前缀来引用您在清单中定义的Activities的包。例如:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.domain"
    android:versionCode="1"
    android:versionName="1.0" >

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

        <activity android:name=".activities.Activity1" />
        <activity android:name=".activities.Activity2" />

您的主要启动器活动是:com.domain.activities.MainActivity,另外两个是:com.domain.activities.Activity1com.domain.activities.Activity2