189 8069 5689

图片,布局,string等)打进jar包-创新互联

解决如下:由于打包出来的jar只有源代码的.class 文件,不包含资源文件,我们就把jar包中用到的资源放到你使用

网站设计制作、成都网站制作,成都做网站公司-创新互联已向成百上千家企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。

该jar的工程里面。然后通过反射即可,这里给出反射类:

public class MResource {

public static int getIdByName(Context context, String className, String resName) {
    String packageName = context.getPackageName();
    int id = 0;
    try {
        Class r = Class.forName(packageName + ".R");
        Class[] classes = r.getClasses();
        Class desireClass = null;
        for (Class cls : classes) {
            if (cls.getName().split("\\$")[1].equals(className)) {
                desireClass = cls;
                break;
            }
        }
        if (desireClass != null) {
            id = desireClass.getField(resName).getInt(desireClass);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return id;
}

}

这里演示项目中打开jar中的activity的实例

这里给出jar中activity的代码:

public class JarActivity extends AppCompatActivity {

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(MResource.getIdByName(this, "layout", "jar_layout"));
    ImageView mPlayerLogo = (ImageView) this.findViewById(MResource.getIdByName(this,
            "id", "logo"));
    mPlayerLogo.setImageResource(MResource.getIdByName(this, "drawable", "ic_launcher"));
}

}

**这里:利用反射根据资源名字获取资源ID加载布局+设置图片

在项目中打开jar的JarActivity的实现代码如下:

注:由于jar没有布局文件和资源文件,所以需要把布局(jar_layout)copy到项目中,aar则不需要**

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    findViewById(R.id.btn_jar).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setClassName(getApplication(), "com.zhh.librarydemo.JarActivity");
            startActivity(intent);
        }
    });
}

}

jar_layout布局:


android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

在清单文件中注册:

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页题目:图片,布局,string等)打进jar包-创新互联
网站路径:http://jkwzsj.com/article/issie.html

其他资讯