Pessoal descobri o que estava de errado que estava dando crash no teste do programa java chamando a lib .so como comentei acima.
Pra quem tiver o mesmo problema ai fica a dica, siga os passos do Carlos A. M.
1. Certifica-se de ter as versões mais recentes do SDK, NDK e ADT,
incluindo o grupo "Android Native Development Tools".
2. Na configuração do Eclipse (Window/Preferences/Android/NDK),
informa a a localização do NDK.
3. Depois de criar o projeto deves habilitar o suporte nativo clicando
com o botão direito e selecionando Android Tools/Add Netive support. O
nome da biblioteca nativa que ele te pede é o mesmo que informas no
LOCAL_MODULE do Android.mk
4. Pra depurar, usa o menu Run/Debug As/Android Native Application.
Só faltou um detalhe:
a declaração do método por exemplo deve ser da seguinte maneira:
extern "C"
{
JNIEXPORT jstring JNICALL Java_org_android_helloworld_HelloworldActivity_init(JNIEnv* env, jobject obj);
};
o que estava errado no meu teste era que o nome da função deve ser o nome do diretório de onde vai ser chamado trocado . por _ e
o nome da lib e em seguida o nome do método....
melhor explicando:package Java.org.android.helloworld.java
classe: HelloworldActivity
metdo em c++ init
não entendi o porquê, mas funcionou!!!!
Em seguida tentei ulilizar std::vector e descobri que precisa de um .mk chamado jni/Application.mk.
então precisa declarar o seguinte:
APP_STL := stlport_static
Notem que Application.mk é diferente de Android.mk
Beleza... ae funciona legal....
Só uma coisa estranha ... o eclipse não reconhece std::vector, porem compila e roda sem problemas.
Alguém conhece alguma dica sobre isso?
outra coisa que achei estranho... depurando pelo eclipse notei ele para no breakpoint normalmente, mas ao avançar (next step) ele
avança o programa como se fosse a instrução continue.
Alguém já passou por isso?
Valew pessoal...
att,
Michel Braz de Morais
Analista / Desenvolvedor de sistemas
Em 19 de novembro de 2012 21:16, Carlos A. M. dos Santos <unixmania@gmail.com> escreveu:
2012/11/19 Michel Braz de Morais <michel.braz.morais@gmail.com>:
> Olha só agora que não vai mesmo rsrsrBom, é pra isso que serve debug. :-D
> primeiro reclamou da versão do android ....
> então criei um projeto do zero novamente e peguei as classes (arquivos ) de
> exemplo do NDK projeto: hello-gl2.
>
> Beleza, dae reclamou da variavel NDK_DEBUG não estar setado.
> então fixei no window-> preferences->c++->build->environment
>
> blz ... os erros se foram ...
>
> Porem a aplicação da um crash e não funciona nem depurando muito menos
> executando com java androi ou native....
Muitas vezes. Tenta conseguir um backtrace pra identificar o ponto em
> Algume passou por algo pareceido?
que ocorreu o crash.
--
"The flames are all long gone, but the pain lingers on"
--
--






0 comentários:
Postar um comentário