E ai pessoal, tudo bom!?
O primeiro post que pretendo fazer é a respeito da migração de um projeto Android feito inteiramente em Eclipse ADT para o Android Studio, em relação ao problema que eu tive, fiquei bem puto durante a migração pois não manjava nada de Gradle nem de Maven, acabei investindo algum tempo estudando os 2 para entender o que estava acontecendo. Meu projeto vivia dando: UNEXPECTED TOP LEVEL EXCEPTION e problemas de importação cíclica com a Android Support V4.
Meu projeto atual tem relativamente poucas bibliotecas de apoio, uso estas 5: app.compat.V7, Support Lib V4,facebookSDK,ViewPagerIndicator e MixPanel.
Bem, comecei seguindo o tutorial de migração disponível no site do próprio AndroidDev Site , ele fala para no próprio eclipse utilizar a ferramenta de migração e selecionar o projeto desejado, nessa hora eu selecionei todos os meus projeto principal e todas as bibliotecas que estavam atreladas ao projeto.
Pelo que entendi, isto fez com que eu tivesse um problema de dependências cíclicas pois meu projeto utilizava a android support v4, o projeto do MixPannel, o do Facebook e o app.Compat.V7 também utilizavam, no eclipse este mesmo problema é conhecido como jar mismatch, tive frequentemente este erro UNEXPECTED TOP LEVEL EXCEPTION após corrigir os problemas de importação.
Para corrigir o UNEXPECTED TOP LEVEL EXCEPTION, eu apaguei todas as referências que tinha da biblioteca support v4 do android. Em seguida pelo android SDK manager fiz o download da ultima versão da support library v4 e do support repositor.
Terminados os downloads eu cliquei com o botão direito sobre o projeto fui na opção open module;
Selecionei o projeto que depende da lib support v4
Isto faz com que a support library v4 pare de ser exportada por outras dependências do projeto que não seja as bibliotecas importadas e seu projeto principal. Um workaround que achei no Stackoverflow.
Por enquanto é isso ai :)
Abraços!
Terminados os downloads eu cliquei com o botão direito sobre o projeto fui na opção open module;
Selecionei o projeto que depende da lib support v4
Cliquei em Dependencies
E lá no rodapé apertei no "+" para adicionar uma biblioteca de dependencia do próprio SDK
No fim selecionei a biblioteca support v4
E prontinho!
Para finalizar e acabar com o UNEXPECTED TOP LEVEL EXCEPTION eu adicionei no build.gradle da raiz do projeto:
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
**** FORA DO BUILDSCRIPTIsto faz com que a support library v4 pare de ser exportada por outras dependências do projeto que não seja as bibliotecas importadas e seu projeto principal. Um workaround que achei no Stackoverflow.
Por enquanto é isso ai :)
Abraços!
0 comentários:
Postar um comentário