使用 Obb download library 在 proguard 上的問題

1 篇文章 / 0 new
author
使用 Obb download library 在 proguard 上的問題
當 App 加入額外下載資源檔(obb)時, 套用 google 提供的 Library 當使用 proguard 後執行下載的功能就會出錯, 其主要原因在於 DownloadsDB 內的
protected static class DownloadsContentDBHelper extends SQLiteOpenHelper {..}
這是建立 SQLite 資料庫, 當proguard後該 class 內的 onCreate 運作就會失敗, 主要原因是建立 table 的方市不是直接下 SQL 語法, 而是採物件式建立 table , 至於哪一部分被更動目前沒有深入追查, proguard 該如何設定讓其可以正常運作也不知(研究不多), 但最簡單的解決方式就是改成用SQL語法直接建立就可以了
public void onCreate(SQLiteDatabase paramSQLiteDatabase) {
    Class<?>[] arrayOfClass = DownloadsDB.class.getDeclaredClasses();
    int numClasses = arrayOfClass.length;
    for (int i = 0; i < numClasses; i++) {
        Class<?> localClass = arrayOfClass[i];
        if (BaseColumns.class.isAssignableFrom(localClass)) {
            try {
                Field localField1 = localClass.getDeclaredField("SCHEMA");
                Field localField2 = localClass.getDeclaredField("TABLE_NAME");
                String[][] arrayOfString = (String[][]) localField1.get(null);
                paramSQLiteDatabase.execSQL(createTableQueryFromArray(
                        (String) localField2.get(null), arrayOfString));
            } catch (Exception localException) {
                while (true)
                    localException.printStackTrace();
            }
        }
    }
}
Free Web Hosting