2012-01-30 16 views
0

Androidベースのプロジェクトの構造を改善するために複数のパッケージを作成しました。これらのパッケージを作成すると、アプリケーションはもう実行されません。これはウィジェットアプリケーションです。私は、アプリケーションのマニフェストを変更する必要があることに気付き、そうしました。これは問題を解決していないようだ。エラーメッセージは表示されません。アプリケーションウィジェットから主なアクティビティページを開くことはできません。誰も私にこの問題を解決する方法を教えてもらえますか?AndroidプロジェクトのJavaパッケージの作成

詳細については、最初はフラットなプロジェクト構造(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"/> 
ありがとうございました。

答えて

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と他の2つは、次のとおりです。com.domain.activities.Activity1com.domain.activities.Activity2

+0

ありがとう!これは動作します! –

1

クラスをパッケージで移動した後、マニフェストでどのようにアクティビティを定義しましたか。 (親指のルールCTRLとして+クラスファイルにあなたを取る必要がマニフェストで活動宣言をクリックして、他のリンクが壊れている)、その一般的により良いあなたのアプリのメインアンドロイドパッケージ内のアクティビティを拡張するすべてのクラスを維持する

EDIT:

MyActivityがパッケージabにある場合は;

そして.abMyActivityは、Androidのために使用されるべきである:(。)名前マニフェストドットで最初にマニフェストパッケージ名からパッケージ・プレフィックスを使用するように指定します。..

+0

私は私はあなたのソリューションを理解していません。マニフェストが私をクラスファイルに連れていかない場合、どうすればリンクを修正できますか?私のアクティビティクラスはアクティビティを拡張します。私もプロジェクトをきれいにしようとしましたが、これはうまくいきません。 –

+0

私の答えが更新されました。もしprobが残っていれば、アンドロイドマニフェストのシングルアクティビティ宣言とpkg名のサンプルアクティビティクラスを投稿してください。 –

+0

私の質問はそれに応じて更新されました。アプリケーションに更新が必要なようです。再び、アプリケーションはウィジェットであり、アクティビティのImageButton経由でアクティビティが起動されます。 –

関連する問題