android 报错

来源:互联网 发布:软件体系结构的定义 编辑:程序博客网 时间:2024/05/17 10:06

在接入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/

0 0