Autore Topic: Migrazione da Eclipse ad Android Studio: come convertire le librerie?  (Letto 205 volte)

Offline sismouse

  • Utente junior
  • **
  • Post: 70
  • Respect: 0
    • Mostra profilo
Salve,
ho un vecchio progetto di un'applicazione Android realizzato con Eclipse ADT. Dopo un paio di tentativi credo di essere riuscito a migrarlo in Android Studio. Per farlo ho seguito diverse guide, ufficiali e non, e alla fine credo di esserci riuscito :-P

Però, quando provo a compilare, ottengo il seguente errore:

Error:Error converting bytecode to dex:Cause: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;

Cercando su internet ho letto diverse possibili soluzioni, ma nessuna sembra essere per il mio problema. Da quello che ho capito dovrebbe essere qualcosa che ha a che fare le dipendenze del mio vecchio progetto, forse in particolare la libreria "Android Support v7 App Compat".

Ecco come appariva il progetto in Eclipse:



ed ecco come appare ora in Android Studio, dopo la migrazione:



Credo che il problema possa essere il contenuto di "dependencies" in ogni file di configurazione di Gradle (che ancora non conosco).

app-app:

Codice: [Seleziona]
dependencies {
    compile project(':androidsupportv7appcompat')
    compile project(':library')
    compile files('libs/android-support-v4.jar')
}

androidsupportv7appcompat:

Codice: [Seleziona]
dependencies {
    compile files('libs/android-support-v4.jar')
    compile files('libs/android-support-v7-appcompat.jar')
}

googleplayservice_lib:

Codice: [Seleziona]
dependencies {
    compile files('libs/google-play-services.jar')
}

library: (una libreria di Google Maps per il clustering dei marker sulla mappa)

Codice: [Seleziona]
dependencies {
    compile project(':googleplayservices_lib')
    compile files('libs/android-support-v4.jar')
}

Riuscite a vedere se c'è qualcosa di errato in questi file? Oppure il problema è altrove?
Vi ringrazio in anticipo per il vostro aiuto!

Post unito: [time]17 Aprile 2017, 18:09:15 CEST[/time]
Ho provato a rimuovere i 3 moduli presenti in "Gradle scripts":

androidsupportv7appcompat
googleplayservices_lib
library

(come si cancellano le cartelle invece? quelle sotto la prima "app-app"...)

Ho anche rimosso il file "android-support-v4.jar" dalla cartella app/libs. Poi ho modificato il file "build.gradle" cercando di fargli prendere le dipendenze giuste:

Codice: [Seleziona]
apply plugin: 'com.android.application'
 
android {
    compileSdkVersion 19
    buildToolsVersion "25.0.2"
 
    defaultConfig {
        applicationId "com.myapp.test"
        minSdkVersion 13
        targetSdkVersion 19
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }
    }
 
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}
 
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
 
    // Google Play Services
    compile 'com.google.android.gms:play-services:9.8.0'
 
    // Support Libraries
    compile 'com.android.support:appcompat-v7:19.+'
    compile 'com.android.support:support-v4:19.+'
 
    // Google Maps Android API Utility Library
    compile 'com.google.maps.android:android-maps-utils:0.5'
}

Ma quando provo a lanciare la compilazione ottengo 211 errors! Di cui la maggior parte sono errori di questo tipo:

error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button'

Cosa sto sbagliando? Come posso risolvere?
« Ultima modifica: 17 Aprile 2017, 18:10:54 CEST da sismouse, Reason: Merged DoublePost »