0

コードをリファクタリングするために、すべてのプロジェクトで使用しているいくつかのメソッドを Android ライブラリに移動しています。

例えば。次のクラスで単純なライブラリ プロジェクトを作成しました。

public class HttpUtils {

    public boolean isNetworkAvailable(Context context) {
        ConnectivityManager cm = (ConnectivityManager) 
          context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = cm.getActiveNetworkInfo();
        if (networkInfo != null && networkInfo.isConnected()) {
            return true;
        }
        return false;
    } 
}

および次の (既定の) マニフェスト ファイル:

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

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
    </application>

</manifest>

を使用して別の Android プロジェクトにインポートできます

import com.xxx.utils.http.HttpUtils;

しかし、 を使用しようとするとHttpUtils.isNetworkAvailable、 が得られHttpUtils.isNetworkAvailable cannot be resolved to a typeます。

ライブラリ アクティビティの場合、マニフェスト ファイルに追加する必要があることを読みましたがHttpUtils、ライブラリ マニフェストに my のような単純なクラスを追加して、別のプロジェクトからそのメソッドにアクセスできるようにするにはどうすればよいですか?

4

2 に答える 2

3

このクラスをライブラリのように追加したいのはなぜですか。パッケージに追加すると、そのようなアクティビティから呼び出すことができます:

boolean isNetworkAvailable = new HttpUtils().isNetworkAvailable(this);

または isNetworkAvailable を static にします:

public static boolean isNetworkAvailable(Context context) {....}

次に、次のように簡単に呼び出すことができます。

boolean isNetworkAvailable = HttpUtils.isNetworkAvailable(this);

このように、マニフェスト ファイルで宣言するものは何もありません。

編集:わかりました。いくつかのプロジェクトがあります。したがって、これには 2 つの選択肢があります。

1)Eclipseから新しいプロジェクトを作成し、2番目のウィンドウで「このプロジェクトをライブラリとしてマークする」を選択できます。次に、すべてのプロジェクトで、このライブラリ プロジェクトをビルド パスに追加します。

2) jar ファイルを作成する

于 2013-01-15T16:17:41.353 に答える
1

ライブラリ マニフェストに単純なクラスを追加する方法

あなたはそうしない。

次のような他の問題があります。

  • ライブラリ プロジェクトがホスト プロジェクトに正しく接続されていない
  • 間違ったインポートを持っている (例: という名前の他のクラスへHttpUtils)

正しいエラーメッセージがあれば助かります。私の知る限り、「型に解決できません」をメソッドの名前に付けることはできません。

于 2013-01-15T16:09:36.303 に答える