在接入facebook sdk的时候遇到下面的问题
Caused by: java.lang.NoClassDefFoundError: com.facebook.android.R$id
01-21 17:56:35.789: E/AndroidRuntime(2483): at com.facebook.LoginActivity.onPause(LoginActivity.java:127)
原因是在项目里面copy了facebook的jar文件,而资源文件没有找到导致的
用下面的方法获得资源
public static int getResourseIdByName(String packageName, String className, String name) {
Class r = null;
int id = 0;
try {
r = Class.forName(packageName + ".R");
Class[] classes = r.getClasses();
Class desireClass = null;
for (int i = 0; i < classes.length; i++) {
if(classes[i].getName().split("\\$")[1].equals(className)) {
desireClass = classes[i];
break;
}
}
if(desireClass != null)
id = desireClass.getField(name).getInt(desireClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
return id;
}
可以参考:
http://stackoverflow.com/questions/14373004/java-lang-noclassdeffounderror-com-facebook-android-rlayout-error-when-using-f
http://www.tanglei.name/how-to-publish-anroid-sdk-to-developers/