Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] NDK

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 rsrsr
> 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....

Bom, é pra isso que serve debug. :-D

> Algume passou por algo pareceido?

Muitas vezes. Tenta conseguir um backtrace pra identificar o ponto em
que ocorreu o crash.

--
"The flames are all long gone, but the pain lingers on"

--



--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário