3

私は自分のappnでANDROID_IDを機能させようとしていますが、エミュレーターとハードウェアで奇妙な動作をしています。

私のアプリからの抜粋。

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、でデバイスIDを取得するだけonCreateです。次に、nullポインタ例外が解決されます。

これは、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 に答える