$ NotFoundException resources thrown by integrating Facebook-android-sdk-3.0

I am trying to integrate Facebook into my application. But as soon as I clicked on fbphoto , it throws an android.content.res.Resources$NotFoundException . I know that it throws an error because the corresponding resource is not created at runtime.

Found that the error occurs when facebook.authorize(this, new String[] { "email", "publish_stream"}, new DialogListener() {} . But the main reason is still missing.

 fbphoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub loginToFacebook(); } }); public void loginToFacebook() { if(!facebook.isSessionValid()) { facebook.authorize(this, new String[] { "email", "publish_stream"}, new DialogListener() { }); } 

 02-08 02:57:58.236: E/AndroidRuntime(1582): FATAL EXCEPTION: main 02-08 02:57:58.236: E/AndroidRuntime(1582): android.content.res.Resources$NotFoundException: String resource ID #0x7f050011 02-08 02:57:58.236: E/AndroidRuntime(1582): at android.content.res.Resources.getText(Resources.java:201) 02-08 02:57:58.236: E/AndroidRuntime(1582): at android.content.res.Resources.getString(Resources.java:254) 02-08 02:57:58.236: E/AndroidRuntime(1582): at android.content.Context.getString(Context.java:183) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.widget.WebDialog.onCreate(WebDialog.java:188) 02-08 02:57:58.236: E/AndroidRuntime(1582): at android.app.Dialog.dispatchOnCreate(Dialog.java:307) 02-08 02:57:58.236: E/AndroidRuntime(1582): at android.app.Dialog.show(Dialog.java:225) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.AuthorizationClient$WebViewAuthHandler.tryAuthorize(AuthorizationClient.java:462) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.AuthorizationClient.tryCurrentHandler(AuthorizationClient.java:210) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.AuthorizationClient.tryNextHandler(AuthorizationClient.java:189) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.AuthorizationClient.authorize(AuthorizationClient.java:117) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.AuthorizationClient.startOrContinueAuth(AuthorizationClient.java:98) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.Session.tryLegacyAuth(Session.java:1096) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.Session.authorize(Session.java:893) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.Session.open(Session.java:957) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.Session.openForPublish(Session.java:415) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.android.Facebook.openSession(Facebook.java:319) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.android.Facebook.authorize(Facebook.java:313) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.facebook.android.Facebook.authorize(Facebook.java:149) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.example.splashscreen.SecondScreen.loginToFacebook(SecondScreen.java:110) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.example.splashscreen.SecondScreen$1.onClick(SecondScreen.java:73) 02-08 02:57:58.236: E/AndroidRuntime(1582): at android.view.View.performClick(View.java:2485) 02-08 02:57:58.236: E/AndroidRuntime(1582): at android.view.View$PerformClick.run(View.java:9080) 02-08 02:57:58.236: E/AndroidRuntime(1582): at android.os.Handler.handleCallback(Handler.java:587) 02-08 02:57:58.236: E/AndroidRuntime(1582): at android.os.Handler.dispatchMessage(Handler.java:92) 02-08 02:57:58.236: E/AndroidRuntime(1582): at android.os.Looper.loop(Looper.java:123) 02-08 02:57:58.236: E/AndroidRuntime(1582): at android.app.ActivityThread.main(ActivityThread.java:3683) 02-08 02:57:58.236: E/AndroidRuntime(1582): at java.lang.reflect.Method.invokeNative(Native Method) 02-08 02:57:58.236: E/AndroidRuntime(1582): at java.lang.reflect.Method.invoke(Method.java:507) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 02-08 02:57:58.236: E/AndroidRuntime(1582): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 02-08 02:57:58.236: E/AndroidRuntime(1582): at dalvik.system.NativeStart.main(Native Method) 

Any help would be appreciated!

+4
source share
2 answers

From stacktrace, the error is caused by this line:

 spinner.setMessage(getContext().getString(R.string.com_facebook_loading)); 

source code here

Resource is correctly defined in res / values ​​/string.xml

Obviously, the error is missing from facebook-android-sdk.

I assume there is a trial version with your project setup. You can follow this guide to set up your project correctly.

+4
source

Please note that this error will also occur if you use IntelliJ and include the Facebook source as a library module in your project.

It's not clear what actually makes this happen, but when the Facebook project (the whole tree) is included as a library module in your IntelliJ project, the facebook strings.xml file is sometimes overwritten with a very simple strings.xml file, and break your application with Resource Exclusion, not found on the Facebook login screen. Not only that, but AndroidManifest Facebook is sometimes also overwritten and causes compilation problems.

Replacing fake strings.xml and AndroidManifest.xml files will solve the problem.

+8
source

All Articles