将Android工程打成jar包之后对资源的调用。

Android工程不能完整的打包成jar包。这个主要是R文件导致的,但是我们可以将除了资源文件中的所有东西都打到jar包中。Activity、View等等类。

提供jar包的同时,还需要提供资源文件。

需要注意的是:

1.如果jar包中包含Activity中,一定要在引用的工程中注册

2.如果有资源文件,不能使用R.……  将资源文件拷贝到引用的工程中 使用以下类进行转换调用。

public class MResource { 
public static int getIdByName(Context context, String className, String name) { 
String packageName = context.getPackageName(); 
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;  
}

 



原文地址:https://www.cnblogs.com/flyme2012/p/3992522.html