我有一個使用本機庫,支持armeabi-V7A和如何創建的.apk擴展
我使用谷歌播放多種APK支持功能,以分發二十的APK 應用但有時它會檢測到目標設備的架構錯誤,而apk帶有更高版本的代碼被安裝在錯誤的架構上
當然這是不正常的,但它絕對不是一個小數目發生對我們
所以我想實現像MXplayer,它有一個主要的應用APK和其他的APK支持抄本不同體系結構
我該如何支持這種行爲?
在此先感謝:)
我有一個使用本機庫,支持armeabi-V7A和如何創建的.apk擴展
我使用谷歌播放多種APK支持功能,以分發二十的APK 應用但有時它會檢測到目標設備的架構錯誤,而apk帶有更高版本的代碼被安裝在錯誤的架構上
當然這是不正常的,但它絕對不是一個小數目發生對我們
所以我想實現像MXplayer,它有一個主要的應用APK和其他的APK支持抄本不同體系結構
我該如何支持這種行爲?
在此先感謝:)
在運行時加載APK(s)。這就是插件(即主題,可下載資源等)完成的方式。
/** Returns APK full path for application */
public static String getAPKPath(final Context context, final String appName)
throws PackageManager.NameNotFoundException {
final PackageManager pm = context.getPackageManager();
return pm.getApplicationInfo(appName, 0).sourceDir;
}
/**
* Returns a classloader that has APK loaded. APK must be installed.
* @param context Android Context
* @param app APK application full name
* @return Classloader that has APK loaded
*/
public static ClassLoader loadAPK(final Context context, final String app)
throws PackageManager.NameNotFoundException {
final String apkPath = getAPKPath(context, app);
final File tmpDir = context.getDir("tmp", 0);
final DexClassLoader classLoader = new DexClassLoader(apkPath,
tmpDir.getAbsolutePath(), null, context.getClassLoader());
return classLoader;
}
你能告訴我怎麼做嗎?,一些鏈接或樣本會很棒:) – 2015-04-03 12:16:20
我已經添加了我使用的代碼。 – m0skit0 2015-04-03 13:01:48
此代碼是否適用於從其他apks加載本機庫? – 2015-04-03 13:43:58
你是說谷歌播放檢測錯誤的架構?如果是這樣,你就無能爲力,只能通過谷歌提出問題。誰知道相同的設備在下載MXPlayer時沒有這個問題? – weston 2015-04-02 15:22:53
單個APK有多大?如果這是一個可接受的數額較大,你可以側面解決問題。 – weston 2015-04-02 15:25:35
是Google play檢測到錯誤的架構。 – 2015-04-03 12:14:47