Мое приложение для Android получает ошибку «Обработка неисправностей»

1

My Android-приложение работает под управлением Eclipse, затем я попытался добавить пример кода GridView из некоторых онлайн-примеров, и теперь он больше не будет работать/запускаться. Я продолжаю получать основную ошибку:

обработка ошибок "javax/net/SocketFactory.class": [2010-08-10 17:35:12 - CLife] Попытайтесь включить основной класс VM в нечто иное, чем основная библиотека.

Я никогда не делал ничего общего с "SocketFactory" в любом из моего кода. Я искал весь свой код и не могу найти код, который я сделал, содержащий файл SocketFactory.class.

Я удалил свой xml и классы, которые я работал над этим, связанным с GridView и вернувшись обратно к коду, который у меня был, когда он был запущен, - но теперь я продолжаю получать вышеуказанную ошибку. Я даже пытаюсь использовать "Очистить", но ошибка продолжается.

Кто-нибудь знает, что я должен делать с этой ошибкой?

Теги:

2 ответа

2

Если вы работаете над более крупным проектом с другими сторонними библиотеками, мне было гораздо лучше использовать android.jar из репозитория maven...

Причина в том, что android.jar поставляется с кучей других библиотек, например junit 3. Поэтому, если вы хотите использовать тесты junit 4, вам нужно беспокоиться о том, где два .jars находятся в пути к классам, поэтому junit 3 не тенерит ваш junit 4 jar.

Также обратите внимание, что некоторые сторонние библиотеки используют структуру пакетов, которая не нравится Android. Например, stax-api-1.0.1.jar. Он имеет структуру пакета, например:

javax.xml.stream.events.StartElement.class

Итак, когда вы пытаетесь создать файл apk, он скажет вам что-то вроде:

[apply] trouble processing "javax/xml/stream/events/StartElement.class":
[apply] 
[apply] Ill-advised or mistaken usage of a core class (java.* or javax.*)
[apply] when not building a core library.
[apply] 
[apply] This is often due to inadvertently including a core library file
[apply] in your application project, when using an IDE (such as
[apply] Eclipse). If you are sure you're not intentionally defining a
[apply] core class, then this is the most likely explanation of what's
[apply] going on.
[apply] 
[apply] However, you might actually be trying to define a class in a core
[apply] namespace, the source of which you may have taken, for example,
[apply] from a non-Android virtual machine project. This will most
[apply] assuredly not work. At a minimum, it jeopardizes the
[apply] compatibility of your app with future versions of the platform.
[apply] It is also often of questionable legality.
[apply] 
[apply] If you really intend to build a core library -- which is only
[apply] appropriate as part of creating a full virtual machine
[apply] distribution, as opposed to compiling an application -- then use
[apply] the "--core-library" option to suppress this error message.
[apply] 
[apply] If you go ahead and use "--core-library" but are in fact
[apply] building an application, then be forewarned that your application
[apply] will still fail to build or run, at some point. Please be
[apply] prepared for angry customers who find, for example, that your
[apply] application ceases to function once they upgrade their operating
[apply] system. You will be to blame for this problem.
[apply] 
[apply] If you are legitimately using some code that happens to be in a
[apply] core package, then the easiest safe alternative you have is to
[apply] repackage that code. That is, move the classes in question into
[apply] your own package namespace. This means that they will never be in
[apply] conflict with core system classes. JarJar is a tool that may help
[apply] you in this endeavor. If you find that you cannot do this, then
[apply] that is an indication that the path you are on will ultimately
[apply] lead to pain, suffering, grief, and lamentation.
2

Попробуйте поменять текст в своем проекте, Android Tools → Fix Project Properties

  • 0
    Спасибо за попытку помочь, сэр. Я использовал «Fix Project», но, похоже, он не работает. Я буду экспериментировать с этим позже. В итоге я скопировал весь проект в новый проект, использовал тот же код, и он работает и собирается без проблем.
  • 0
    У меня были подобные проблемы, и обычно копирование в новый проект делает свое дело, но это может быть болезненно, если это большой проект, и вы находитесь в системе контроля версий и т. д., как правило, есть решение, часто совершенно не очевидное, возможно, связанное с путь сборки. Вы можете попробовать удалить библиотеки, очистить и затем добавить их обратно в ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню