У меня проблема с одним из моих приложений, и мне было интересно, может ли кто-нибудь дать мне представление о том, что может быть причиной этого.
Я получаю ClassNotFoundException, важная строка ниже
E/AndroidRuntime(21982): Caused by: java.lang.ClassNotFoundException: couk.doridori.goigo.customUI.GoBoardView in loader [email protected]
Теперь это приложение больше года и два дня назад у меня было два отдельных пользователя, которые связались со мной по поводу этой проблемы, одна из которых касается HTC Wildfire (2.1) и Samsung Galaxy S (?). Теперь я не могу воссоздать эту проблему на своих устройствах (2.2 и 1.6) или эмулятор (2.1) и не могу понять, почему этот класс не может быть найден загрузчиком классов. Я потратил некоторое время на поиски в Интернете, и надеюсь, что у кого-то есть указатели! Похоже, что когда загружается активность, которая при настройке contentView старается раздуть пользовательский вид View, называемый GoBoardView, который расширяет класс View, это просто делает простой рисунок холста и не является используя любые сторонние библиотеки или любые другие классы, которые имели бы столкновение packagename или что-то еще.
Пожалуйста, помогите! На всякий случай его проблема с сборкой я обновляю все свои SDK и ADT через eclipse, поскольку он строит против 1.6 и использует старый ADT, но я понятия не имею, поможет ли это просто подумать, стоит ли попробовать. Любые советы были бы очень благодарны! (см. ниже для EDIT)
E/AndroidRuntime(21982): java.lang.RuntimeException: Unable to start activity ComponentInfo{couk.doridori.goigoFull/couk.doridori.goigoFull.Board}: android.view.InflateException: Binary XML file line #14: Error inflating class couk.doridori.goigo.customUI.GoBoardView
E/AndroidRuntime(21982): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596)
E/AndroidRuntime(21982): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
E/AndroidRuntime(21982): at android.app.ActivityThread.access$2200(ActivityThread.java:126)
E/AndroidRuntime(21982): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
E/AndroidRuntime(21982): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(21982): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(21982): at android.app.ActivityThread.main(ActivityThread.java:4603)
E/AndroidRuntime(21982): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(21982): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(21982): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime(21982): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime(21982): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(21982): Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class couk.doridori.goigo.customUI.GoBoardView
E/AndroidRuntime(21982): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576)
E/AndroidRuntime(21982): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
E/AndroidRuntime(21982): at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
E/AndroidRuntime(21982): at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
E/AndroidRuntime(21982): at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
E/AndroidRuntime(21982): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
E/AndroidRuntime(21982): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
E/AndroidRuntime(21982): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
E/AndroidRuntime(21982): at android.app.Activity.setContentView(Activity.java:1629)
E/AndroidRuntime(21982): at couk.doridori.goigoFull.Board.onCreate(Board.java:31)
E/AndroidRuntime(21982): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(21982): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544)
E/AndroidRuntime(21982): ... 11 more
E/AndroidRuntime(21982): Caused by: java.lang.ClassNotFoundException: couk.doridori.goigo.customUI.GoBoardView in loader [email protected]
E/AndroidRuntime(21982): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
E/AndroidRuntime(21982): at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
E/AndroidRuntime(21982): at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
E/AndroidRuntime(21982): at android.view.LayoutInflater.createView(LayoutInflater.java:466)
E/AndroidRuntime(21982): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
E/AndroidRuntime(21982): ... 22 more
ИЗМЕНИТЬ
Хорошо, исследуя некоторые ссылки, которые пользователи комментируют в ответ на этот вопрос, кажется, что использование неправильного контекста для загрузки действий может вызвать эту проблему. Я нахожу это интересным, потому что один из двух отчетов журнала, которые были отправлены, имеет это исключение, предшествовавшее
W/ActivityManager( 1222): startActivity called from non-Activity context; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { flg=0x20000 cmp=couk.doridori.goigoFull/.Games }
который вполне объяснителен - проблема заключается в том, что я не знаю, где эта деятельность может быть запущена из того, где она использует контекст неактивности, поэтому я немного озадачен, думая, что это может быть какая-то многозадачность, как причуда и ее возвращение на переднем плане чего-то. Это может, по-видимому, вызвать проблемы с classLoader. Если это происходило на телефоне пользователей, я не могу понять, почему я не могу воспроизвести это (и большинство других пользователей тоже не могут).
Другую вещь, которую я нашел через интересные ссылки, - это некоторые люди столкнулись с проблемами из-за "неправильной установки apk", которая может быть решена путем переустановки, и я попросил пользователей, у которых возникла проблема, попробуйте (что не имеет значения). Также кажется, что когда проблема встречается (которая при первом использовании), она будет постоянной.