1

パッケージ名が com.company.package のメイン アプリがあります。

パッケージ名が com.company.package.librarypackage のライブラリがあります

メインのマニフェスト ファイルに次のように記述しました。

<activity
      android:configChanges="orientation"
      android:name="com.company.package.librarypackage.classA"
      android:screenOrientation="landscape" >
</activity>

私も試しました:

<activity
      android:configChanges="orientation"
      android:name=".librarypackage.classA"
      android:screenOrientation="landscape" >
</activity>

ただし、私のコードは現在メッセージでクラッシュしています:

java.lang.NoClassDefFoundError: com.company.package.librarypackage.classA

パッケージ名の一部をメインアプリと共有するライブラリを持つことが可能かどうか疑問に思います。

なにか提案を?

ありがとう!

4

4 に答える 4

1

マニフェストで基本パッケージを拡張するだけで済みます....だから使用するだけです

<activity
      android:configChanges="orientation"
      android:name=".librarypackage.classA"
      android:screenOrientation="landscape" >
</activity>

「。」を忘れないでください。

アップデート

また、intent-filter と action/category を設定する必要があります。これをデフォルトのアクティビティにしたい場合は、次のものが必要です。

<activity
      android:configChanges="orientation"
      android:name=".librarypackage.classA"
      android:screenOrientation="landscape" >
      <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
</activity>

インテントでアクティビティを呼び出す場合は、これを name 属性で指定する必要があります。

ここは参考です...

于 2012-03-16T14:38:21.860 に答える
1

メインのアプリ パッケージがcom.company.packageの場合、それをアクティビティ マニフェスト xml から削除する必要があります。そのはず:

android.name=".librarypackage.classA"

あなたが上に持っているものではなく...

于 2012-03-16T14:38:38.110 に答える
0

アクティビティは、メイン アプリのマニフェストで宣言する必要があります。ライブラリのマニフェストで宣言しても意味がありません。

ライブラリとメイン アプリのパッケージ名は同じにすることができます。

アクティビティのクラスは、アプリケーション パッケージまたはサブパッケージに含まれている必要はありません。(マニフェストがある場合は少し省略できますが、これは必須ではありません。)classA指定したパッケージの一部であることを確認してください。

于 2012-03-16T14:41:46.727 に答える
0

解決しました。buildPath に欠落している Jar ファイルの依存関係がありました。おじゃまします...

于 2012-03-19T10:08:14.603 に答える