6
respostas

[Dúvida] Migração de um projeto eclipse para android studio

Boa noite, galera!

Eu desenvolvi um projeto android que tem uma outra biblioteca que eu desenvolvi com a linguagem android com java, estou migrando o projeto para android studio para fazer o deploy, gostaria de saber como são 2 projetos um principal e outro como biblioteca eu criei no gradle dessa forma, não tenho domínio do Android Studio e estou precisando de uma ajuda, segue os arquivos criados:

build.gradle que está no diretório raíz:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        mavenCentral()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle que está na pasta app:

apply plugin: 'com.android.application'

dependencies {
    implementation project(':android_game:gameEngineSideScrolling')
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':android_game:gameEngineSideScrolling')
}

android {
    compileSdkVersion 29
    buildToolsVersion "33.0.2"

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

settings.gradle que está no diretório raíz:

rootProject.name = 'side_scrolling_games'
include ':side_scrolling_games:app'

Projeto raíz side_scrolling_games e projeto lib gameEngineSideScrolling

Quando eu executo o projeto no android studio pelo sync project with gradle files não sei se ela executa todos os passos de build do projeto, conforme imagem.

Quando eu tento gerar o apk pelo menu build, não aparece esse item.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Projeto como lib pelo eclipse

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Execução do build

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Não aparece o build do apk.

Atenciosamente,

Fernando Hiar.
6 respostas

Olá Fernando, tudo bem?

Migrar um projeto do Eclipse para o Android Studio pode ser um pouco desafiador, mas com as configurações corretas, é possível fazer isso sem muitos problemas.

Pelo que entendi, você tem dois projetos, um principal e outro como biblioteca. No arquivo build.gradle que está na pasta app, você adicionou a dependência da biblioteca usando a linha "implementation project(':android_game:gameEngineSideScrolling')".

Para gerar o APK, você pode tentar executar o comando "gradlew assemble" no terminal do Android Studio. Esse comando deve gerar o APK do seu projeto.

Caso você ainda tenha problemas para gerar o APK, verifique se todas as dependências estão corretamente configuradas no arquivo build.gradle e se não há erros de compilação no código.

Qualquer coisa estarei à disposição :)

Opa Matheus!

Parece que ele não está encontrando o projeto raíz.

FAILURE: Build failed with an exception.

* What went wrong:
Task 'assemble' not found in root project 'side_scrolling_games'.

Esse é o diretório que estou rodando:

C:\Users\Fernando\Documents\workspace-spring-tool-suite-4-4.6.2.RELEASE\android\game\side_scrolling_games

Att,

Fernando Hiar.

Opa Fernando, beleza?

Parece que você configurou corretamente o seu projeto para incluir a biblioteca gameEngineSideScrolling. Aqui estão algumas sugestões que você pode tentar:

  1. Verifique se o caminho para o projeto da biblioteca está correto na seção dependencies do build.gradle do seu aplicativo. Certifique-se de que o caminho é relativo ao diretório raiz do projeto.

  2. Tente limpar o cache do Gradle e, em seguida, sincronize novamente o projeto com os arquivos Gradle. Para fazer isso, você pode clicar no botão "Refresh" na barra de ferramentas do Gradle, que fica no lado direito da tela no Android Studio.

  3. Verifique se a biblioteca gameEngineSideScrolling tem seu próprio arquivo build.gradle e se o nome do módulo na seção apply plugin corresponde ao nome do módulo definido em settings.gradle.

  4. Tente executar a tarefa assembleDebug diretamente do terminal do Android Studio. Para fazer isso, clique na aba "Terminal" no canto inferior esquerdo do Android Studio e digite o comando: ./gradlew assembleDebug

  5. Certifique-se de estar no diretório raiz do projeto antes de executar esse comando. Este comando deve criar um APK para o aplicativo com a biblioteca incluída. Se não for o caso, ele fornecerá informações sobre o erro que está ocorrendo.

Espero que essas sugestões ajudem você a solucionar o problema!

Se o problema persistir peço que entre em contato no nosso discord de programação ou no nosso fórum de Spring ou ler a Documentação oficial do Android - Criação de bibliotecas com Java.

Bom dia, Matheus!

A ordem do deploy é, primeiro fazer os da bibliotecas e depois fazer o deploy do projeto principal, existe essa ordem pelo gradle?

Att,

Fernando Hiar.

Opa Fernando, tudo bem?

O Gradle executa as tarefas de construção e implantação em uma ordem específica, seguindo as dependências entre módulos e bibliotecas. Normalmente, o Gradle primeiro constrói os módulos e bibliotecas em que o aplicativo depende e, em seguida, constrói e implanta o aplicativo principal.

Portanto, se sua biblioteca gameEngineSideScrolling é uma dependência do seu aplicativo, o Gradle deve construí-la primeiro antes de construir e implantar o aplicativo principal. Você pode verificar isso olhando para a ordem em que as tarefas são executadas no console de construção do Gradle no Android Studio.

No entanto, é importante observar que se sua biblioteca e aplicativo estão em diferentes projetos Gradle, a ordem de construção e implantação dependerá da maneira como você definiu as dependências entre eles. Você precisará garantir que as dependências estejam configuradas corretamente nos arquivos build.gradle de ambos os projetos.

Qualquer coisa estarei à disposição.

Bom dia, Matheus!

Tudo bem?

Qual a diferença de projetos tipo library e modulos?

Att,

Fernando Hiar.