java.lang.InstantiationException: class 没有零参数构造函数
java.lang.InstantiationException: class has no zero argument constructor
我正在尝试使用 BroadcastReceiver
作为 内部 class 来跟踪网络状态,但我在标题中遇到了异常。我应该怎么做才能解决这个问题?
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable() || mobile.isAvailable()) {
setupData();
Log.d("Netowk Available ", "Flag No 1");
}
}
}
无法通过 AndroidManifest.xml
注册非静态内部 class。您可以:
按照this thread中所述动态注册,并删除空构造函数。
或者,
使你的内部 class 静态,并在 AndroidManifext.xml
.
中注册它
e~~刚遇到这个问题,我把classNetworkChangeReceiver
重构到另一个地方
你的
inner Broadcast receiver must be static ( to be registered through Manifest)
或
Non-static broadcast receiver must be registered and unregistered inside the Parent class
为此。
我正在使用内部广播接收器,但没有在 class 中注册它。将其设为静态并在 Manifest 中注册,或者将其设为非静态并在父 class .
中注册和注销
只需让您的接收器 Class 静态如:
public [static] class ReceiverClass extends BroadcastReceiver
我正在尝试使用 BroadcastReceiver
作为 内部 class 来跟踪网络状态,但我在标题中遇到了异常。我应该怎么做才能解决这个问题?
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable() || mobile.isAvailable()) {
setupData();
Log.d("Netowk Available ", "Flag No 1");
}
}
}
无法通过 AndroidManifest.xml
注册非静态内部 class。您可以:
按照this thread中所述动态注册,并删除空构造函数。
或者,
使你的内部 class 静态,并在 AndroidManifext.xml
.
e~~刚遇到这个问题,我把classNetworkChangeReceiver
重构到另一个地方
你的
inner Broadcast receiver must be static ( to be registered through Manifest)
或
Non-static broadcast receiver must be registered and unregistered inside the Parent class
为此。
我正在使用内部广播接收器,但没有在 class 中注册它。将其设为静态并在 Manifest 中注册,或者将其设为非静态并在父 class .
中注册和注销只需让您的接收器 Class 静态如:
public [static] class ReceiverClass extends BroadcastReceiver