Processing em modo Android no Manjaro/Arch Linux

seg 13 janeiro 2020

Para rodar Processing modo Android no Manjaro/Arch Linux:

1) Precisa do Java da Oracle?

  • se precisar mesmo (tenho dúvidas), você tem que fazer o seguinte:

1a) baixar para sua pasta Downloads a versão atual do Java 8

  • no momento em que escrevo, esta versão do Java 8 disponível é a jdk-8u231-linux-x64.tar.gz.
  • para baixar do site da Oracle, você precisa fazer um cadastro;
  • a Oracle vai te mandar um e-mail para validar seu cadastro, use um e-mail válido;

1b) instalar do AUR o pacote jdk8

  • o gerenciador de pacotes não consegue baixar o fonte, porque a Oracle exige o cadastro;
  • se o arquivo estiver na sua pasta Downloads, ele vai achar.

2) Instale o Processing a partir do código fonte

  • Instruções aqui:
    https://github.com/processing/processing/wiki/Build-Instructions
    

2a) Instalar o Java 8 da Oracle (ver acima);

2b) Clonar o repositório

    git clone https://github.com/processing/processing.git --depth 1
  • o comando acima instala só o código mais atual, é mais rápido que baixar todo o repositório.
  • abrir o código no VS Code ou alguma outra IDE pode extragar o classpath;

2c) Marretar o download do Java

  • o Processing vai tentar baixar o Java 8u202 para continuar, mas não vai conseguir.
  • alterei o arquivo Downloader.java e coloquei o seguinte:

Downloader.java:

// Finally, add the filename to the end
url += filename;

// MEXI Gambira = baixa o jdk local
url = "http://localhost:8000/jre8-202.tar.gz";

HttpURLConnection conn =
  (HttpURLConnection) new URL(url).openConnection();
conn.setRequestProperty("Cookie", COOKIE);
  • coloquei o arquivo jdk-8u231-linux-x64.tar.gz que eu tinha baixado antes numa pasta como "jre8-202.tar.gz" e subi um servidor web para enganar o compilador.

2d) Compilar

cd processing/build;
ant run;

3) Ativar modo Android #sqn (só que não)

3a) Abrir o Processing

3b) Adicionar modo...

3c) Selecionar Android e Clicar "Install..."

  • no meu caso, não funcionou e a mensagem não era clara.
  • "Error downloading and installing Android."
  • por isso compilei do fonte, para conseguir entender qual o erro.

3d) Investigue o erro.

  • no meu caso o erro era "SSLKeyException: RSA premaster secret error Caused by InvalidKeyException"
  • olhando o detalhe do erro (Stack Trace), vi que ele era causado por isso: ..- java.security.NoSuchAlgorithmException: SunTlsRsaPremasterSecret KeyGenerator not available

  • de acordo com a internet, este erro significa que falta uma dependência para o arquivo "sunjce_provider.jar"

4) Acrescente a dependência faltante

4a) Copie o arquivo:

- de: /usr/lib/jvm/java-8-jdk/jre/lib/ext/sunjce_provider.jar 
- para: /[sua pasta do projeto git]/processing/app/lib/sunjce_provider.jar

4b) Inclua essa dependência no seu arquivo build.xml:

<fileset dir=".." id="runtime.jars">
    <include name="app/pde.jar" />
    <include name="app/lib/antlr.jar" />
    <include name="app/lib/jna.jar" />
    <include name="app/lib/jna-platform.jar" />
    <include name="app/lib/ant.jar" />
    <include name="app/lib/ant-launcher.jar" />
    <!-- Permite download via https -->
    <include name="app/lib/sunjce_provider.jar" />
</fileset>

4c) Compile de novo, agora com a dependência

cd processing/build;
ant run;

5) Ativar modo Android (agora, sim!)

5a) Abrir o Processing

5b) Adicionar modo...

5c) Selecionar Android e Clicar "Install..."

  • agora vai funcionar;
  • daqui pra frente é contigo...

processing / linux /

Comentários