由于我已经在Huawei device上测试了我的应用程序,因此我在LogCat中看到了所有类型的NumberFormatExceptions,并且事情不再按预期工作了。他们出现在我的代码的完整不同部分。
这一行:
Gson gson = new GsonBuilder().setDateFormat("dd.MM.yyyy HH:mm:ss").create();
将产生:
05-14 09:32:21.359: W/System.err(2384): java.lang.NumberFormatException: Invalid int: ""
05-14 09:32:21.369: W/System.err(2384): at java.lang.Integer.invalidInt(Integer.java:138)
05-14 09:32:21.369: W/System.err(2384): at java.lang.Integer.parseInt(Integer.java:359)
05-14 09:32:21.369: W/System.err(2384): at java.lang.Integer.parseInt(Integer.java:332)
05-14 09:32:21.369: W/System.err(2384): at java.util.Calendar.getHwFirstDayOfWeek(Calendar.java:807)
05-14 09:32:21.369: W/System.err(2384): at java.util.Calendar.<init>(Calendar.java:745)
05-14 09:32:21.369: W/System.err(2384): at java.util.GregorianCalendar.<init>(GregorianCalendar.java:338)
05-14 09:32:21.369: W/System.err(2384): at java.util.GregorianCalendar.<init>(GregorianCalendar.java:314)
05-14 09:32:21.369: W/System.err(2384): at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:378)
05-14 09:32:21.369: W/System.err(2384): at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:368)
05-14 09:32:21.369: W/System.err(2384): at com.google.gson.DefaultDateTypeAdapter.<init>(DefaultDateTypeAdapter.java:49)
05-14 09:32:21.369: W/System.err(2384): at com.google.gson.GsonBuilder.addTypeAdaptersForDate(GsonBuilder.java:555)
05-14 09:32:21.369: W/System.err(2384): at com.google.gson.GsonBuilder.create(GsonBuilder.java:543)
05-14 09:32:21.369: W/System.err(2384): at xy.SearchFragment.onCreate(SearchFragment.java:108)
05-14 09:32:21.369: W/System.err(2384): at android.support.v4.app.Fragment.performCreate(Fragment.java:1477)
05-14 09:32:21.369: W/System.err(2384): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:893)
05-14 09:32:21.369: W/System.err(2384): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1082)
05-14 09:32:21.369: W/System.err(2384): at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1184)
05-14 09:32:21.369: W/System.err(2384): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:291)
05-14 09:32:21.369: W/System.err(2384): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669)
05-14 09:32:21.379: W/System.err(2384): at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
05-14 09:32:21.379: W/System.err(2384): at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
05-14 09:32:21.379: W/System.err(2384): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
05-14 09:32:21.379: W/System.err(2384): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
05-14 09:32:21.379: W/System.err(2384): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
05-14 09:32:21.379: W/System.err(2384): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
05-14 09:32:21.379: W/System.err(2384): at android.app.Activity.setContentView(Activity.java:1835)
05-14 09:32:21.379: W/System.err(2384): at xy.ui.SearchActivity.onCreate(SearchActivity.java:113)
05-14 09:32:21.379: W/System.err(2384): at android.app.Activity.performCreate(Activity.java:4465)
05-14 09:32:21.379: W/System.err(2384): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
05-14 09:32:21.379: W/System.err(2384): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
05-14 09:32:21.379: W/System.err(2384): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
05-14 09:32:21.379: W/System.err(2384): at android.app.ActivityThread.access$600(ActivityThread.java:123)
05-14 09:32:21.379: W/System.err(2384): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
05-14 09:32:21.379: W/System.err(2384): at android.os.Handler.dispatchMessage(Handler.java:99)
05-14 09:32:21.379: W/System.err(2384): at android.os.Looper.loop(Looper.java:137)
05-14 09:32:21.379: W/System.err(2384): at android.app.ActivityThread.main(ActivityThread.java:4424)
05-14 09:32:21.379: W/System.err(2384): at java.lang.reflect.Method.invokeNative(Native Method)
05-14 09:32:21.379: W/System.err(2384): at java.lang.reflect.Method.invoke(Method.java:511)
05-14 09:32:21.379: W/System.err(2384): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
05-14 09:32:21.379: W/System.err(2384): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
05-14 09:32:21.379: W/System.err(2384): at dalvik.system.NativeStart.main(Native Method)
在OrmLite数据库上进行查询时会发生类似的事情,即使它是空的:
ArrayList<Search> searches = getSearchesDao().queryForAll();
05-14 09:40:07.359: W/System.err(2574): java.lang.NumberFormatException: Invalid int: ""
05-14 09:40:07.359: W/System.err(2574): at java.lang.Integer.invalidInt(Integer.java:138)
05-14 09:40:07.359: W/System.err(2574): at java.lang.Integer.parseInt(Integer.java:359)
05-14 09:40:07.359: W/System.err(2574): at java.lang.Integer.parseInt(Integer.java:332)
05-14 09:40:07.359: W/System.err(2574): at java.util.Calendar.getHwFirstDayOfWeek(Calendar.java:807)
05-14 09:40:07.359: W/System.err(2574): at java.util.Calendar.<init>(Calendar.java:745)
05-14 09:40:07.359: W/System.err(2574): at java.util.GregorianCalendar.<init>(GregorianCalendar.java:338)
05-14 09:40:07.369: W/System.err(2574): at java.util.GregorianCalendar.<init>(GregorianCalendar.java:314)
05-14 09:40:07.369: W/System.err(2574): at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:378)
05-14 09:40:07.369: W/System.err(2574): at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:368)
05-14 09:40:07.369: W/System.err(2574): at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:253)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.field.types.BaseDateType$DateStringFormatConfig$1.initialValue(BaseDateType.java:55)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.field.types.BaseDateType$DateStringFormatConfig$1.initialValue(BaseDateType.java:52)
05-14 09:40:07.369: W/System.err(2574): at java.lang.ThreadLocal$Values.getAfterMiss(ThreadLocal.java:430)
05-14 09:40:07.369: W/System.err(2574): at java.lang.ThreadLocal.get(ThreadLocal.java:65)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.field.types.BaseDateType$DateStringFormatConfig.getDateFormat(BaseDateType.java:63)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.field.types.BaseDateType.parseDateString(BaseDateType.java:40)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.field.types.DateStringType.sqlArgToJava(DateStringType.java:61)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.field.BaseFieldConverter.resultToJava(BaseFieldConverter.java:28)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.field.FieldType.resultToJava(FieldType.java:819)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.stmt.mapped.BaseMappedQuery.mapRow(BaseMappedQuery.java:60)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.stmt.SelectIterator.getCurrent(SelectIterator.java:270)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.stmt.SelectIterator.nextThrow(SelectIterator.java:161)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.stmt.StatementExecutor.query(StatementExecutor.java:202)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.stmt.StatementExecutor.queryForAll(StatementExecutor.java:118)
05-14 09:40:07.369: W/System.err(2574): at com.j256.ormlite.dao.BaseDaoImpl.queryForAll(BaseDaoImpl.java:241)
05-14 09:40:07.369: W/System.err(2574): at xy.DatabaseHelper.getSearches(DatabaseHelper.java:443)
05-14 09:40:07.369: W/System.err(2574): at
xy.GlobalApp.onCreate(GlobalApp.java:53)
05-14 09:40:07.369: W/System.err(2574): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
05-14 09:40:07.369: W/System.err(2574): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3954)
05-14 09:40:07.369: W/System.err(2574): at android.app.ActivityThread.access$1300(ActivityThread.java:123)
05-14 09:40:07.369: W/System.err(2574): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
05-14 09:40:07.369: W/System.err(2574): at android.os.Handler.dispatchMessage(Handler.java:99)
05-14 09:40:07.369: W/System.err(2574): at android.os.Looper.loop(Looper.java:137)
05-14 09:40:07.369: W/System.err(2574): at android.app.ActivityThread.main(ActivityThread.java:4424)
05-14 09:40:07.369: W/System.err(2574): at java.lang.reflect.Method.invokeNative(Native Method)
05-14 09:40:07.369: W/System.err(2574): at java.lang.reflect.Method.invoke(Method.java:511)
05-14 09:40:07.379: W/System.err(2574): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
05-14 09:40:07.379: W/System.err(2574): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
05-14 09:40:07.379: W/System.err(2574): at dalvik.system.NativeStart.main(Native Method)
05-14 09:40:07.459: W/dalvikvm(2574): VFY: unable to resolve interface method 33786: Lcom/google/inject/Injector;.getAllBindings ()Ljava/util/Map;
05-14 09:40:07.469: W/dalvikvm(2574): VFY: unable to resolve interface method 33790: Lcom/google/inject/Injector;.getExistingBinding (Lcom/google/inject/Key;)Lcom/google/inject/Binding;
05-14 09:40:07.469: W/dalvikvm(2574): VFY: unable to resolve interface method 33798: Lcom/google/inject/Injector;.getScopeBindings ()Ljava/util/Map;
05-14 09:40:07.469: W/dalvikvm(2574): VFY: unable to resolve interface method 33799: Lcom/google/inject/Injector;.getTypeConverterBindings ()Ljava/util/Set;
这可能是什么问题?
编辑:事实上,事情仍在按预期工作,我还有其他一些问题。此外,例外仅是警告。 不过,知道为什么Gson对象的初始化会在某些设备上产生此警告会很有趣。