我在android 中監聽wifi變化服務時,遇到錯誤 java.lang.IllegalAccessException,sth is not accessible from class android.app.ActivityThread,主要是app中其他地方調用了默認的構造函數,必須增加默認構造函數且訪問權限為public
1.錯誤的部分代碼
//通過一個BroadcastReceiver(android 四大組建之一),用于動態注冊監聽網絡變化public class NetworkConnectChangedReceiver extends BroadcastReceiver{ OnWifiChangedListener changed; Activity act; public NetworkConnectChangedReceiver(Activity act){ this.act = act; } public void setChangedListener(OnWifiChangedListener changed) { this.changed = changed; } @Override public void onReceive(Context context, Intent intent) { if (null == intent.getAction()){ return ; } // TODO Auto-generated method stub if(intent.getAction().equals(WifiManager.rssI_CHANGED_ACTION)){ //signal strength changed } else if(intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)){//wifi連接上與否 System.out.2.錯誤提示如下: FATAL EXCEPTION: main Process: com.chaoyuan.signalmachineconfig, PID: 4087 java.lang.RuntimeException: Unable to instantiate receiver com.chaoyuan.signalmachineconfig.NetworkConnectChangedReceiver: java.lang.IllegalAccessException: com.chaoyuan.signalmachineconfig.NetworkConnectChangedReceiver() is not accessible from class android.app.ActivityThread at android.app.ActivityThread.handleReceiver(ActivityThread.java:2565) at android.app.ActivityThread.access3.錯誤修改說明 錯誤原因主要是app中其他地方調用了默認的構造函數,必須增加默認構造函數且訪問權限為public:
public class NetworkConnectChangedReceiver extends BroadcastReceiver{
........//添加默認構造函數,且為publicpublic NetworkConnectChangedReceiver(){}public NetworkConnectChangedReceiver(Activity act){ this.act = act;}.......}
新聞熱點
疑難解答