0
Diğer apk resouce'ları almak için getPackageArchiveInfo kullanmak istiyorum, ama null olsun, nerede hata olduğunu bilmiyorum. bu benim kodum.getPackageArchiveInfo return null
public void loadSkinAsync(String dexPath, final loadSkinCallBack callback) {
new AsyncTask<String, Void, Resources>() {
protected void onPreExecute() {
if (callback != null) {
callback.startloadSkin();
}
}
@Override
protected Resources doInBackground(String... params) {
try {
if (params.length == 1) {
String dexPath_tmp = params[0];
File file = new File(dexPath_tmp);
PackageManager mPm = mContext.getPackageManager();
PackageInfo mInfo = mPm.getPackageArchiveInfo(dexPath_tmp, PackageManager.GET_ACTIVITIES);
mPackageName = mInfo.packageName;
AssetManager assetManager = AssetManager.class.newInstance();
Method addAssetPath = assetManager.getClass().getMethod("addAssetPath", String.class);
addAssetPath.invoke(assetManager, dexPath_tmp);
Resources superRes = mContext.getResources();
Resources skinResource = new Resources(assetManager, superRes.getDisplayMetrics(), superRes.getConfiguration());
return skinResource;
}
return null;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
protected void onPostExecute(Resources result) {
mResources = result;
if (callback != null) {
if (mResources != null) {
callback.loadSkinSuccess();
} else {
callback.loadSkinFail();
}
}
}
}.execute(dexPath);
}
ilk ben sonra ben PackageInfo almak için kullanabilirsiniz, PackageManager olsun ama PackageInfo null. Hala gerekli bilgilerden herhangi vermeyin
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
: Uygulama dizinde olmayan bir dosya okurken eğer – Stultuske