2016-03-20 4 views
0

Vor einigen Monaten begann ich ursprünglich mein Projekt mit nur einem mobilen Modul, und jetzt bin ich daran interessiert, wie gut meine App für tragbare Geräte bei der Konfiguration. Das heißt, alle meine Dateien (Java, XML, Drawables usw.) sind im mobilen Modul, also muss ich alle Dateien, die ich teilen möchte, zwischen mobilen und Wear-Modulen in ein neu erstelltes "Common" übertragen. Modul?Freigabe von Dateien zwischen Android-Handy und trägt Module

EDIT:

Kann jemand mir erklären, was die Gradle folgenden Projektsynchronisierungsfehler von der Mobil kommen und Abnutzung Gradle Dateien bedeuten:

enter image description here

... Dies, nachdem ich geschah enthalten kompilieren Projekt (': common') in beiden Modulen wie folgt:

Zunächst ist hier mein gemeinsames Modul:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "dpark.gameoflife" 
     minSdkVersion 9 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.2.1' 
} 

Mobiles Modul:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "dpark.gameoflife" 
     minSdkVersion 9 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    wearApp project(':wear') 
    compile project(':common') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.2.1' 
    compile 'com.google.android.gms:play-services:8.4.0' 
} 

Schließlich mein Verschleiß Modul:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "dpark.gameoflife" 
     minSdkVersion 20 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.google.android.support:wearable:1.3.0' 
    compile 'com.google.android.gms:play-services-wearable:8.4.0' 
    compile project(':common') 
} 

... Wenn überhaupt, habe ich unterschrieben eine APK von mein gemeinsames Modul im Freigabemodus, und ich bekomme die gleichen Fehler wie oben gezeigt.

Antwort

1

richtig, wenn Sie Ihre Dateien von beiden Module verwendet werden (mobil und tragen), dann offensichtlich, sollten Sie diese beiden Module machen verwenden ein gemeinsames Modul, in dem Sie alle notwendigen Dateien setzen.

in jedem Modul compile project(': common')

+0

Ok, also, welche Arten von Dateien bin ich soll man in den mobilen ablegen und Module neben den Gradle-Dateien tragen? Weil ich buchstäblich alle Dateien mit Ausnahme der Gradle-Datei vom mobilen Modul zum gemeinsamen Modul übertragen habe. – DaveNOTDavid

+1

Sie sollten gemeinsame Übertragung von Dateien wie Drawables, Stile oder vielleicht einigen gemeinsamen Java-Klassen wie 'utils'' base activity' oder ... Leave auf jedem Modul nur auf die konkrete Implementierung für dieses Gerät – Mehdi

+0

Lasst uns sagen, dass Sie eine recyclerview verwenden In beiden Geräten enthält mobile eine Liste mit zwei Spalten und die tragen eine Liste mit einer Spalte. in dieser Situation werden Sie Daten von Ihrem freigegebenen Modul dann auf dem Handy mit zwei Spalten anzeigen und auf tragen mit einer Spalte – Mehdi

0

Wie here erwähnt hinzu:

1- Machen Sie das sicher in der ersten Zeile build.gradle (Module:my-library-module), definiert ist korrekt als:

apply plugin: 'com.android.library' 

2- die Bibliothek hinzufügen die settings.gradle as:

include ':app', ':my-library-module' 

3- die Bibliothek im build.gradle (Module:xxx) Kompilieren (Modul: mobile) als:

dependencies { 
    compile project(":my-library-module") 
} 

4- Sie in Ihrem Projekt import die Bibliothek als:

import xxx.xx.xx