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 静态:

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

然后你可以简单地调用它:

boolean isNetworkAvailable = HttpUtils.isNetworkAvailable(this);

这样,清单文件中就没有什么要声明的了。

编辑:好的,我明白了。你有几个项目。因此,为此,您有 2 个选择:

1)您可以从 Eclipse 新项目创建并在第二个窗口中选择“将此项目标记为库”。然后在你的所有项目中在构建路径中添加这个库项目

2)创建一个jar文件

于 2013-01-15T16:17:41.353 回答
1

如何在库清单中添加一个简单的类

你没有。

您还有其他问题,例如:

  • 没有将库项目正确附加到宿主项目
  • 导入错误(例如,导入到其他名为 的类HttpUtils

如果您有正确的错误消息,这将有所帮助。AFAIK,不可能将“无法解析为类型”放在方法的名称上。

于 2013-01-15T16:09:36.303 回答