Android中奇怪的NullPointerException

Android中奇怪的NullPointerException,android,nullpointerexception,Android,Nullpointerexception,我认为下面的问题会很傻(我只是一个编码初学者),但我已经在上面坐了很长时间,最后决定把它挂起来。我有一个类级的getName()方法,它访问string.xml文件并从中获取一个条目 代码: public String getName() { String name = null; try { System.out.println("Inside getName"); String app_id = Main

我认为下面的问题会很傻(我只是一个编码初学者),但我已经在上面坐了很长时间,最后决定把它挂起来。我有一个类级的getName()方法,它访问string.xml文件并从中获取一个条目

代码:

public String getName()
    {
        String name = null;
        try {
            System.out.println("Inside getName");
            String app_id = MainActivity.this.getResources().getString(R.string.app_id);
            System.out.println(app_id);
            fb = new Facebook(app_id);
            System.out.println("Before the JSON");
            String jsonUser = fb.request("me");
            System.out.println("Successful in fb.request");
            obj=Util.parseJson(jsonUser);
            System.out.println("Successful in parsejson");
            name = obj.optString("username");
} catch...
}
  12-26 17:24:07.330: W/dalvikvm(23184): threadid=1: thread exiting with uncaught exception (group=0x4118d438)
12-26 17:24:07.330: E/AndroidRuntime(23184): FATAL EXCEPTION: main
12-26 17:24:07.330: E/AndroidRuntime(23184): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.facebook_integration/com.example.facebook_integration.SQLiteDemoActivity}: java.lang.NullPointerException
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.access$600(ActivityThread.java:138)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.os.Looper.loop(Looper.java:137)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.main(ActivityThread.java:4954)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at java.lang.reflect.Method.invokeNative(Native Method)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at java.lang.reflect.Method.invoke(Method.java:511)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at dalvik.system.NativeStart.main(Native Method)
12-26 17:24:07.330: E/AndroidRuntime(23184): Caused by: java.lang.NullPointerException
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.example.facebook_integration.SQLiteDemoActivity.onCreate(SQLiteDemoActivity.java:33)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.Activity.performCreate(Activity.java:5252)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2038)
12-26 17:24:07.330: E/AndroidRuntime(23184):    ... 11 more
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Facebook_Integration</string>
    <string name="action_settings">Settings</string>
    <string name="app_id">594458613962731</string>
    <string name="hello_world">Hello world!</string>
    <string name="title_activity_snap__image_view">Snap_ImageView</string>
    <string name="album_name">San_Pictures</string>
    <string name="title_activity_android_custom_gallery">AndroidCustomGalleryActivity</string>
    <string name="title_activity_full_screen">FullScreen</string>
    <string name="title_activity_sqlite_demo">SQLiteDemoActivity</string>

</resources>
当我调用上述方法时,它在

   String app_id = getString(R.string.app_id);
String app_id = MainActivity.this.getResources().getString(R.string.app_id);
有趣且最好的是,我在onCreate()方法中有相同的行,如下所示:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = (TextView) findViewById(R.id.name_text_view);
        b = (ImageView) findViewById(R.id.postbutton);
        snap = (ImageView) findViewById(R.id.camera_image_view);
        sp = getPreferences(MODE_PRIVATE);
        **String app_id = getString(R.string.app_id);**
        fb = new Facebook(app_id);
        System.out.println("The app_id is " + app_id);
        String access_token = sp.getString("access_token", null);
        long expires = sp.getLong("access_expires", 0);
}
这不会引发任何空指针异常。我的问题是,为什么它只在getName()方法上抛出NullPointerException。这与R的范围有关吗?我在这里完全迷失了方向,我真的很难为情地提出这样的问题,但也无法接受这样一个事实,那就是它给了我这个愚蠢的错误。任何帮助都会得到疯狂的感激

更新:

Logcat:

public String getName()
    {
        String name = null;
        try {
            System.out.println("Inside getName");
            String app_id = MainActivity.this.getResources().getString(R.string.app_id);
            System.out.println(app_id);
            fb = new Facebook(app_id);
            System.out.println("Before the JSON");
            String jsonUser = fb.request("me");
            System.out.println("Successful in fb.request");
            obj=Util.parseJson(jsonUser);
            System.out.println("Successful in parsejson");
            name = obj.optString("username");
} catch...
}
  12-26 17:24:07.330: W/dalvikvm(23184): threadid=1: thread exiting with uncaught exception (group=0x4118d438)
12-26 17:24:07.330: E/AndroidRuntime(23184): FATAL EXCEPTION: main
12-26 17:24:07.330: E/AndroidRuntime(23184): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.facebook_integration/com.example.facebook_integration.SQLiteDemoActivity}: java.lang.NullPointerException
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.access$600(ActivityThread.java:138)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.os.Looper.loop(Looper.java:137)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.main(ActivityThread.java:4954)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at java.lang.reflect.Method.invokeNative(Native Method)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at java.lang.reflect.Method.invoke(Method.java:511)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at dalvik.system.NativeStart.main(Native Method)
12-26 17:24:07.330: E/AndroidRuntime(23184): Caused by: java.lang.NullPointerException
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.example.facebook_integration.SQLiteDemoActivity.onCreate(SQLiteDemoActivity.java:33)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.Activity.performCreate(Activity.java:5252)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2038)
12-26 17:24:07.330: E/AndroidRuntime(23184):    ... 11 more
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Facebook_Integration</string>
    <string name="action_settings">Settings</string>
    <string name="app_id">594458613962731</string>
    <string name="hello_world">Hello world!</string>
    <string name="title_activity_snap__image_view">Snap_ImageView</string>
    <string name="album_name">San_Pictures</string>
    <string name="title_activity_android_custom_gallery">AndroidCustomGalleryActivity</string>
    <string name="title_activity_full_screen">FullScreen</string>
    <string name="title_activity_sqlite_demo">SQLiteDemoActivity</string>

</resources>
更新2:

public String getName()
    {
        String name = null;
        try {
            System.out.println("Inside getName");
            String app_id = MainActivity.this.getResources().getString(R.string.app_id);
            System.out.println(app_id);
            fb = new Facebook(app_id);
            System.out.println("Before the JSON");
            String jsonUser = fb.request("me");
            System.out.println("Successful in fb.request");
            obj=Util.parseJson(jsonUser);
            System.out.println("Successful in parsejson");
            name = obj.optString("username");
} catch...
}
  12-26 17:24:07.330: W/dalvikvm(23184): threadid=1: thread exiting with uncaught exception (group=0x4118d438)
12-26 17:24:07.330: E/AndroidRuntime(23184): FATAL EXCEPTION: main
12-26 17:24:07.330: E/AndroidRuntime(23184): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.facebook_integration/com.example.facebook_integration.SQLiteDemoActivity}: java.lang.NullPointerException
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.access$600(ActivityThread.java:138)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.os.Looper.loop(Looper.java:137)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.main(ActivityThread.java:4954)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at java.lang.reflect.Method.invokeNative(Native Method)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at java.lang.reflect.Method.invoke(Method.java:511)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at dalvik.system.NativeStart.main(Native Method)
12-26 17:24:07.330: E/AndroidRuntime(23184): Caused by: java.lang.NullPointerException
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.example.facebook_integration.SQLiteDemoActivity.onCreate(SQLiteDemoActivity.java:33)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.Activity.performCreate(Activity.java:5252)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2038)
12-26 17:24:07.330: E/AndroidRuntime(23184):    ... 11 more
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Facebook_Integration</string>
    <string name="action_settings">Settings</string>
    <string name="app_id">594458613962731</string>
    <string name="hello_world">Hello world!</string>
    <string name="title_activity_snap__image_view">Snap_ImageView</string>
    <string name="album_name">San_Pictures</string>
    <string name="title_activity_android_custom_gallery">AndroidCustomGalleryActivity</string>
    <string name="title_activity_full_screen">FullScreen</string>
    <string name="title_activity_sqlite_demo">SQLiteDemoActivity</string>

</resources>
Strings.xml:

public String getName()
    {
        String name = null;
        try {
            System.out.println("Inside getName");
            String app_id = MainActivity.this.getResources().getString(R.string.app_id);
            System.out.println(app_id);
            fb = new Facebook(app_id);
            System.out.println("Before the JSON");
            String jsonUser = fb.request("me");
            System.out.println("Successful in fb.request");
            obj=Util.parseJson(jsonUser);
            System.out.println("Successful in parsejson");
            name = obj.optString("username");
} catch...
}
  12-26 17:24:07.330: W/dalvikvm(23184): threadid=1: thread exiting with uncaught exception (group=0x4118d438)
12-26 17:24:07.330: E/AndroidRuntime(23184): FATAL EXCEPTION: main
12-26 17:24:07.330: E/AndroidRuntime(23184): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.facebook_integration/com.example.facebook_integration.SQLiteDemoActivity}: java.lang.NullPointerException
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.access$600(ActivityThread.java:138)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.os.Looper.loop(Looper.java:137)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.main(ActivityThread.java:4954)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at java.lang.reflect.Method.invokeNative(Native Method)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at java.lang.reflect.Method.invoke(Method.java:511)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at dalvik.system.NativeStart.main(Native Method)
12-26 17:24:07.330: E/AndroidRuntime(23184): Caused by: java.lang.NullPointerException
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.example.facebook_integration.SQLiteDemoActivity.onCreate(SQLiteDemoActivity.java:33)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.Activity.performCreate(Activity.java:5252)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2038)
12-26 17:24:07.330: E/AndroidRuntime(23184):    ... 11 more
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Facebook_Integration</string>
    <string name="action_settings">Settings</string>
    <string name="app_id">594458613962731</string>
    <string name="hello_world">Hello world!</string>
    <string name="title_activity_snap__image_view">Snap_ImageView</string>
    <string name="album_name">San_Pictures</string>
    <string name="title_activity_android_custom_gallery">AndroidCustomGalleryActivity</string>
    <string name="title_activity_full_screen">FullScreen</string>
    <string name="title_activity_sqlite_demo">SQLiteDemoActivity</string>

</resources>
如果有人处理过这样的情况,请让我知道

更新4:

public String getName()
    {
        String name = null;
        try {
            System.out.println("Inside getName");
            String app_id = MainActivity.this.getResources().getString(R.string.app_id);
            System.out.println(app_id);
            fb = new Facebook(app_id);
            System.out.println("Before the JSON");
            String jsonUser = fb.request("me");
            System.out.println("Successful in fb.request");
            obj=Util.parseJson(jsonUser);
            System.out.println("Successful in parsejson");
            name = obj.optString("username");
} catch...
}
  12-26 17:24:07.330: W/dalvikvm(23184): threadid=1: thread exiting with uncaught exception (group=0x4118d438)
12-26 17:24:07.330: E/AndroidRuntime(23184): FATAL EXCEPTION: main
12-26 17:24:07.330: E/AndroidRuntime(23184): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.facebook_integration/com.example.facebook_integration.SQLiteDemoActivity}: java.lang.NullPointerException
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.access$600(ActivityThread.java:138)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.os.Looper.loop(Looper.java:137)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.main(ActivityThread.java:4954)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at java.lang.reflect.Method.invokeNative(Native Method)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at java.lang.reflect.Method.invoke(Method.java:511)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at dalvik.system.NativeStart.main(Native Method)
12-26 17:24:07.330: E/AndroidRuntime(23184): Caused by: java.lang.NullPointerException
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.example.facebook_integration.SQLiteDemoActivity.onCreate(SQLiteDemoActivity.java:33)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.Activity.performCreate(Activity.java:5252)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2038)
12-26 17:24:07.330: E/AndroidRuntime(23184):    ... 11 more
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Facebook_Integration</string>
    <string name="action_settings">Settings</string>
    <string name="app_id">594458613962731</string>
    <string name="hello_world">Hello world!</string>
    <string name="title_activity_snap__image_view">Snap_ImageView</string>
    <string name="album_name">San_Pictures</string>
    <string name="title_activity_android_custom_gallery">AndroidCustomGalleryActivity</string>
    <string name="title_activity_full_screen">FullScreen</string>
    <string name="title_activity_sqlite_demo">SQLiteDemoActivity</string>

</resources>
MyApp的结构:

public String getName()
    {
        String name = null;
        try {
            System.out.println("Inside getName");
            String app_id = MainActivity.this.getResources().getString(R.string.app_id);
            System.out.println(app_id);
            fb = new Facebook(app_id);
            System.out.println("Before the JSON");
            String jsonUser = fb.request("me");
            System.out.println("Successful in fb.request");
            obj=Util.parseJson(jsonUser);
            System.out.println("Successful in parsejson");
            name = obj.optString("username");
} catch...
}
  12-26 17:24:07.330: W/dalvikvm(23184): threadid=1: thread exiting with uncaught exception (group=0x4118d438)
12-26 17:24:07.330: E/AndroidRuntime(23184): FATAL EXCEPTION: main
12-26 17:24:07.330: E/AndroidRuntime(23184): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.facebook_integration/com.example.facebook_integration.SQLiteDemoActivity}: java.lang.NullPointerException
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.access$600(ActivityThread.java:138)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.os.Looper.loop(Looper.java:137)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.main(ActivityThread.java:4954)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at java.lang.reflect.Method.invokeNative(Native Method)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at java.lang.reflect.Method.invoke(Method.java:511)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at dalvik.system.NativeStart.main(Native Method)
12-26 17:24:07.330: E/AndroidRuntime(23184): Caused by: java.lang.NullPointerException
12-26 17:24:07.330: E/AndroidRuntime(23184):    at com.example.facebook_integration.SQLiteDemoActivity.onCreate(SQLiteDemoActivity.java:33)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.Activity.performCreate(Activity.java:5252)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
12-26 17:24:07.330: E/AndroidRuntime(23184):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2038)
12-26 17:24:07.330: E/AndroidRuntime(23184):    ... 11 more
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Facebook_Integration</string>
    <string name="action_settings">Settings</string>
    <string name="app_id">594458613962731</string>
    <string name="hello_world">Hello world!</string>
    <string name="title_activity_snap__image_view">Snap_ImageView</string>
    <string name="album_name">San_Pictures</string>
    <string name="title_activity_android_custom_gallery">AndroidCustomGalleryActivity</string>
    <string name="title_activity_full_screen">FullScreen</string>
    <string name="title_activity_sqlite_demo">SQLiteDemoActivity</string>

</resources>
以下是我的应用程序的要点

1.登录facebook

2.拍照

3.将拍摄的照片的用户名和路径存储在数据库中

最初,我的主要活动有facebook图像,它会将我记录在facebook内并检索用户名,从而在同一主要活动的文本视图中设置它。 其次是一个相机按钮,它可以带我到相机前拍照。
拍摄完照片后,第三个活动应显示用户名和存储照片的路径。(这是我无法再次获取用户名的地方)。

在此,您应提供应用程序或活动上下文以获取资源值,如下所示:

String app_id=youractivity.this.getString(R.string.app_name);
public class MainActivity extends Activity {

    Resources res = this.getResources(); //you cannot use like this

这种方法很简单。希望这有帮助…

首先必须检查strings.xml文件中的应用程序id是否正确

如果是的话,那就改变

 String app_id = getResources().getString(R.string.app_id);

我发现这发生在我身上的是一个破损的布局。不用担心。我正在尽力给你解决办法

解决方案

确保R.链接到的任何内容都没有损坏。修复XML文件中的所有错误。如果ADK中的任何东西损坏,R将无法再生

如果您在活动中找到了某个内容并创建了import android.R,请将其删除。 运行Project->Clean。这将删除并重新生成R和BuildConfig

确保自动勾选了项目->构建。如果没有,请通过菜单->项目->构建项目手动构建。

等待几秒钟,让错误消失

如果不起作用,请删除/gen/文件夹中的所有内容

如果仍然不起作用,请尝试右键单击项目->Android工具->修复项目属性

检查*.properties文件(位于应用程序文件夹的根文件夹中),确保其中的链接未断开

右键单击您的项目>属性>Android

查看页面右侧的项目构建目标和库部分。构建目标应与AndroidManifest.xml中的目标匹配。因此,如果在AndroidManifest中设置为target 17,请确保目标名称为Android4.2。如果您的库在引用下有一个X,请删除并重新添加该库,直到出现绿色勾号。如果您移动了一些文件和文件夹,可能会发生这种情况

如果R不能重新生成,该怎么办

这通常发生在xml文件损坏时

检查XML文件中的错误,主要是/res/文件夹中的错误

常见的位置是/layout//values/,尤其是最近更改了其中一个位置时

检查AndroidManifest.xml,我发现我经常更改字符串,而忘记更改AndroidManifest.xml中的字符串名称

检查是否安装了Android SDK构建工具窗口->Android SDK管理器->工具->Android SDK构建工具

确保在更新Android SDK工具时,还更新了Android SDK平台工具和Android ASK构建工具。如果它们不匹配,构建将以静默方式失败

如果找不到问题,请右键单击/gen/->从本地历史还原…->勾选R.java->单击还原。这并不能解决问题,但会清除额外的错误,使问题更容易找到


希望它能帮助你。:)

我不知道到底是什么问题,但我可以为您提供更好的解决方案

尝试将此应用程序id保存在共享首选项中,然后您可以随时随地访问它


或者在任何类中创建一个静态字符串(我总是为所有常量和静态变量创建一个特殊类),然后您也可以随时随地调用此变量:)

我根据更新修改的答案:

恐怕活动的创造不仅仅局限于活动的创造 对象然后是各种初始化和setter调用,它们 Android系统可以,这将为活动生成完整的上下文。 例如:当您的MainActivity由Android系统创建时,MainActivity 对象,然后进行初始化,初始化还包括绑定 对象与资源。 当您在应用程序中创建MainActivity对象时,这些初始化都不会发生,因此,您无法访问资源(以及许多其他内容)。这个物体 不是Android意义上的真正活动对象。它只是一个未初始化的对象 主要活动类

在您的情况下,可以通过应用程序访问资源中的字符串值, 在使用当前活动上下文的所有活动中。你可以支持