2013-04-25 107 views
1

我通过访问其服务中的applicationInfo并通过packageManager获取资源,从而访问了另一个APK的布局。如果在布局中只指定了textView和Buttons,那么它工作正常。但如果在访问的布局中使用任何可绘制资源,则抛出Resource not found Exception从另一个APK访问的布局无法访问其可绘制资源

这是我的代码来访问布局

ApplicationInfo info = packageManager.getApplicationInfo(packageName, 0); 
Resources res = packageManager.getResourcesForApplication(info); 
XmlResourceParser xres = res.getLayout(0x7f030000); 
+0

我甚至尝试删除gen和bin文件夹来重新创建它,但它从来没有工作。但如果我复制所有可访问到我的项目的布局的apk中使用的可绘制资源的作品。但我不想这样做。有人可以帮助 – jaagstorm 2013-04-25 10:19:23

回答

1

这位朋友你好,请试试这个。

PackageManager manager = getPackageManager(); 
resources = manager.getResourcesForApplication(packName); 

int resID = resources.getIdentifier("image1", "drawable", packName); 
Log.d(TAG, "resID = " + resID); 
Drawable image = getResources().getDrawable(resID); 
Log.d(TAG, "resID = " + resID); 
+0

我不想单独访问可绘制的图像。我想膨胀布局的remoteView。因此,在扩充此布局时,我希望我的编译器搜索其他APK的可绘制文件夹,而不是我的。 – fuzionpro 2013-04-25 11:36:11

+0

尝试此示例,http://mylifewithandroid.blogspot.in/2011/01/plugins-with-user-interface.html ...尝试在resPlugin1包的aaa.xml中插入ImageView并查看会发生什么 – jaagstorm 2013-04-25 11:47:57