找不到方法android.content.Context.getSystemService方法

时间:2016-06-02 21:31:17

标签: android network-connection

我正在尝试在我的应用中获得网络连接。我的编译版本是23,目标版本是19.当我在api版本23的设备上运行我的应用程序时,一切正常。但是当我运行我的应用程序时,我收到错误“找不到方法android.content.Context.getSystemService” api版本19的设备。

public class LoadingActivity extends AppCompatActivity {

private String TAG = LoadingActivity.class.getSimpleName();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_loading);
    Log.d(TAG,"onCreate()");

}

@Override
protected void onStart() {
    super.onStart();
    Log.d(TAG,"onStart()");

    ConnectivityManager cm = (ConnectivityManager)getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        Boolean isConnected = (activeNetwork != null && activeNetwork.isConnectedOrConnecting());
    }
}

部分堆栈跟踪

06-03 00:23:36.439 1479-1479/com.example.andonsystem D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002
06-03 00:23:36.447 1479-1479/com.example.andonsystem D/LoadingActivity: onCreate()
06-03 00:23:36.447 1479-1479/com.example.andonsystem D/LoadingActivity: onStart()
06-03 00:23:36.499 1479-1484/com.example.andonsystem D/dalvikvm: GC_CONCURRENT freed 271K, 10% free 2976K/3292K, paused 2ms+1ms, total 8ms
06-03 00:23:36.503 522-851/system_process I/ActivityManager: START u0 {cmp=com.example.andonsystem/.LoginActivity} from pid 1479
06-03 00:23:37.015 1479-1479/com.example.andonsystem I/dalvikvm: Could not find method android.content.Context.getSystemService, referenced from method com.example.andonsystem.LoginActivity.access$super
06-03 00:23:37.015 1479-1479/com.example.andonsystem W/dalvikvm: VFY: unable to resolve virtual method 473: Landroid/content/Context;.getSystemService (Ljava/lang/Class;)Ljava/lang/Object;
06-03 00:23:37.015 1479-1479/com.example.andonsystem D/dalvikvm: VFY: replacing opcode 0x6f at 0x004b

提前感谢您的帮助......

2 个答案:

答案 0 :(得分:1)

您似乎导入了错误的Context类。包裹是android.content.Context。 (因此完全限定的方法是android.content.Context.getSystemService()

答案 1 :(得分:0)

这显然意味着Android试图调用在较新的目标Android版本上存在的,在较旧的API级别上不存在的方法。操作系统通知您它正在替代方法。通常,除非没有兼容的替代方法,否则该应用将继续正常运行。 appcompat库应该提供这些替换。