Android5.0以上版本ActiveAndroid報ClassNotFoundException錯誤
阿新 • • 發佈:2019-02-10
近日將正在開發的app執行到android lollipop系統上卻出現的閃退,經過查詢發現是ActiveAndroid在5.0上的相容性問題。
通常我們初始化ActiveAndroid的時候,是通過在自定義的Application中的onCreate()方法中呼叫
ActiveAndroid.initialize(this);
或者是自定義的Application直接繼承com.activeandroid.app.Application
如上程式碼在5.0以下的系統不會有問題,以上就會直接導致app在應用的入口處就直接crash。
我們在5.0及以上版本需要換一種宣告方式,如下:
關於上述程式碼做幾點說明:public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); initializeDB(); } protected void initializeDB() { Configuration.Builder configurationBuilder = new Configuration.Builder(this); configurationBuilder.addModelClasses(Test.class); ActiveAndroid.initialize(configurationBuilder.create()); } }
1. MyApplication繼承的是android原生的Application,必須繼承原生的;
2. 很重要!Test.class為應用用到的ActiveAndroid的資料庫模型,所有的模型必須在此宣告;
3. 如果Configuration類找不到,說明你的ActiveAndroid的jar包版本太低的(需要3.1)
最後再說下,如果碰到了棘手的問題,百度無法解決的時候,多去StackOverflow搜尋下,會有很多的收穫。