Android中奇怪的NullPointerException
我认为下面的问题会很傻(我只是一个编码初学者),但我已经在上面坐了很长时间,最后决定把它挂起来。我有一个类级的getName()方法,它访问string.xml文件并从中获取一个条目 代码: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
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意义上的真正活动对象。它只是一个未初始化的对象 主要活动类 在您的情况下,可以通过应用程序访问资源中的字符串值, 在使用当前活动上下文的所有活动中。你可以支持