• Android中打包JAR时获取资源ID的方法


    前言:在打包android源码的时,有的时候源码中包含了资源文件,但是jar包中不包含,所以会异常,解决的方案就是不用系统的提供的id名,而是直接

       获取id,如反射。

    1.系统提供的方法:

                /**
                 * 参数1:资源的名字;参数2:资源所在的类;参数三:程序的包名。
                 */
                int id = getResources().getIdentifier("home_activity", "layout",
                        getPackageName());

    2.自定义的方法:

    package com.example.activitylibrary;
    
    import android.content.Context;
    
    /**
     * 根据资源的名字获取其ID值
     * @author mining
     *
     */
    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;
        }
    }
  • 相关阅读:
    css实现右侧三角
    css 应用 给头像添加标签
    css中伪选择器使用
    服务器上的项目不能对外发送请求
    视频只能播放一两帧,PDF文件60k以上加载失败的问题,静态访问也一样
    spring集成mybatis 打印sql语句
    新浪股票代码
    linux 设置mysql密码
    linux启动mysql服务报错
    配置eclipseJVM虚拟机内存大小
  • 原文地址:https://www.cnblogs.com/qinghuaideren/p/3179403.html
Copyright © 2020-2023  润新知