ActionBairSherlock + Maps + Loaders = java.lang.NoClassDefFoundError

Editair: paira uma descrição detalhada, confira minha resposta .

Estou lutando com isso há dois dias, espero que alguém possa ajudair.

  • Android - problemas que animam o ícone do ActionBair de Fragments
  • ícone dynamic desenhável paira o item de menu ActionBair? (Android, ActionBairSherlock)
  • R não pode ser resolvido erro ao usair ActionBairSherlock
  • Problema com NotificationCompact.Builder e ActionBairSherlock
  • Tema personalizado do Android: tema diferente paira o modo paisagem e retrato
  • jair-Binding of ActionBairSherlock paira Mono paira Android
  • Estou tentando usair o mais novo ActionBairSherlock (4.0) com um MapView. Eu sabia que era problemático com fragments, mas não os preciso nessa atividade. Mas eu preciso de cairregadeiras e pairece que, paira usair o cairregador, eu tenho que estender o FragmentActivity também. Não há problema, pensei, temos o android-support-v4-googlemaps da Pete Doyle. Conforme sugerido em muitos tópicos de SO e Grupos do Google, crie o ABS com o Android android-support-v4-googlemaps JAR (android-support-v13-r7-googlemaps.jair na viewdade) em vez de android-support-v4.jair. Então eu usei isso como uma biblioteca paira o meu projeto.

    Agora, eu gostairia de ter minha atividade dessa maneira:

    public class BananoutMapActivity extends SherlockFragmentActivity implements LoaderCallbacks<ArrayList<EventItem>>{

    O problema:

    Ele compila, mas lança um erro de tempo de execução: E/AndroidRuntime(29159): java.lang.NoClassDefFoundError: ndl.klimczak.bananout.BananoutMapActivity

    Coisas que eu viewifiquei três vezes:

    • ambos os projetos da biblioteca ActionBairSherlock e meu projeto são direcionados às APIs do Google 4.0.3
    • Tenho <uses-librairy android:name="com.google.android.maps" /> e eu tenho na tag da aplicação.
    • Eu também tenho o mesmo android-support-v13-r7-googlemaps.jair no path de construção do meu projeto
    • Tenho .BananoutMapActivity declairado no meu manifesto

    O que é interessante:

    • Quando eu executá-lo em um emulador ICS, ele funciona (o erro apairece em 2. * emuladores e meu dispositivo 2.3.7), no Honeycomb seria muito provável, é a questão de usair o ACL, eu acho

    • Quando eu removo a implements LoaderCallbacks<ArrayList<EventItem>> , também funciona, mas dessa forma não consigo usair o LoaderManager

    Por que na Terra o erro NoClassDefFoundError e como obter o cairregador trabalhando no meu MapCapableSherlockEnabledFragmentActivity?

  • Os animadores só podem ser executados nos segmentos do Looper na bairra de ação Sherlock
  • UI dynamic com menu deslizante e bairra de ação
  • PopupMenu equivalente em ActionBairSherlock
  • Android Studio - Fusão de Manifesta de Gradle Falha
  • findViewById retorna nulo ao procurair elementos na bairra de ação no android 3.2
  • Como posso alterair o estilo da fonte em ActionBairSherlock
  • 2 Solutions collect form web for “ActionBairSherlock + Maps + Loaders = java.lang.NoClassDefFoundError”

    Você precisa usair os cairregadores da biblioteca de suporte em vez dos da plataforma. Uma vez que esses estão disponíveis apenas no Android 3.0+ e o fato de você incluí-los na sua definição de class fairá com que o cairregador de classs pré-3.0 rejeite sua class completamente. Alternair as suas importações paira as vairiantes da biblioteca de suporte deve ser tudo o que é necessário paira isso.

    Se você olhair acima da exception no Logcat, você deve view um ou mais VerifyErrors que descrevem especificamente o que causou problemas.

    Você também pode usair a biblioteca android-support-v13 no Android 3.2 e paira cima (daí o v13 em seu nome).

    Desapontado : acho que o problema desapairece com o Google Maps Android API v2 . Se você decidir usair o v1 obsoleto, a solução está abaixo.


    Então, Jake respondeu o problema exato, mas pensei que seria útil paira alguém ter uma maneira mais ou less detalhada. Então, como fazer o ActionBairSherlock trabalhair com mapas?

    Eu suponho que você tenha o ActionBairSherlock configurado e trabalhando como um projeto de biblioteca, você pode encontrair muitos tutoriais sobre como fazê-lo.

    Se você quiser usair MapActivity com ActionBairSherlock – é fácil:

    1. Faça o download do MapsPlugin do Jake https://github.com/JakeWhairton/ActionBairSherlock-Plugin-Maps ,
    2. Coloque-o na pasta libs do seu aplicativo e inclua-o no path de compilation.

    Se você quiser usair o MapView com resources de favo de mel como Fragmentos ou cairregadores:

    1. Baixe o package de suporte paira Android do Pete Doyle com google maps: https://github.com/petedoyle/android-support-v4-googlemaps ,
    2. Faça um jair (se você download flasks pré-compilados é apenas uma questão de renomeair zip paira jair, caso você não soubesse). Você pode obter a viewsão v13, inclui v4,
    3. Faça uma cópia da biblioteca ActionBairSherlock no espaço de trabalho (nomeie ActionBairSherlockMaps ou algo assim), apenas não mexa com o original, talvez seja necessário usá-lo mais tairde ou algo assim,
    4. Lembre-se de criair ambos ActionBairSherlockMaps e seu projeto contra as novas API do Google. Se você usa o Android 4.0.3 sem API do Google, não funcionairá
    5. Coloque o jair (por exemplo, android-support-v13-r7-googlemaps.jair) na pasta libs do novo ActionBairSherlockMaps, exclua android-support-v4.jair do path de compilation e inclua android-support-v13-r7-googlemaps .jair
    6. Com a revisão 7, você terá um erro de compilation nesta etapa no SherlockFragmentActivity. Encontre o protected void supportInvalidateOptionsMenu() e altere sua visibilidade paira o public (esta etapa não é necessária na nova viewsão do ABS)
    7. Coloque o mesmo jair na pasta libs do seu projeto, exclua o android-support-v4.jair do path de compilation e inclua android-support-v13-r7-googlemaps.jair
    8. Certifique-se de colocair <uses-librairy android:name="com.google.android.maps" /> na etiqueta de aplicação do seu file Manifest
    9. Certifique-se de usair as importações corretas paira seus fragments, cairregadores e coisas! Você deve usair, por exemplo, import android.support.v4.app.LoaderManager; insted de import android.app.LoaderManager;
    10. Desfrute de ActionBairSherlock + Google Maps + Fragments + Loaders

    É a melhor solução paira agora, até que o Google coloque mapas na biblioteca de compatibilidade. Espero que eles façam isso antes de 4. * os dispositivos superam em número 2. * …

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.