3

我试图让 ANDROID_ID 在我的 appn 中工作,但在我的模拟器和硬件上都出现了奇怪的行为。

我的应用程序的摘录。

import android.provider.Settings.Secure;

public class RssActivity extends ListActivity {

final String android_id = Secure.getString(getContentResolver(),Secure.ANDROID_ID); 

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d("UUID", android_id);

现在在我的模拟器中应用程序打开但似乎冻结并且什么都不做,我什至没有收到我的“UUID”调试消息。

在我的手机上,我只是得到一个"the application has stopped unexpectedly" OS 2.3.3

任何想法,我执行这个错误吗?

如果我删除"final String android_id = Secure.getString(getContentResolver(),Secure.ANDROID_ID);",那么该应用程序在模拟器和硬件上都可以正常工作 - 所以问题必须出在此处?

4

2 回答 2

10

仅在之前声明变量onCreate,然后在onCreate. 然后您的空指针异常将得到解决。

发生这种情况是因为getContentResolver()需要完全启动 Context(Activity)。

String android_id; 

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tst);
    android_id = Secure.getString(getContentResolver(),Secure.ANDROID_ID);
    Log.d("UUID", android_id);
}    
于 2012-09-12T09:20:03.253 回答
0

尝试这个:

Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);

于 2012-09-12T09:31:06.887 回答