यहाँ त्रुटि मैं जब मैं अपने प्रोजेक्ट का निर्माण हो रही है:डुप्लिकेट प्रविष्टि: com/गूगल/एंड्रॉयड/ग्राम/आंतरिक/zzahl.class
Error:Execution failed for task ':transformClassesWithJarMergingForDebug'.
com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/internal/zzahl.class
मैं यह पता लगाने की है कि क्या नहीं कर पा रहे त्रुटि उत्पन्न करने के कारण, मुझे संदेह है कि यह कुछ है जो मैंने अपने ग्रेडल या जावा गतिविधि में गड़बड़ कर लिया है।
Gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
classpath 'com.github.ben-manes:gradle-versions-plugin:0.13.0' // version plugin support
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'com.google.gms:google-services:3.0.0'
}
}
plugins {
id "org.sonarqube" version "2.1" // https://plugins.gradle.org/plugin/org.sonarqube
}
apply plugin: 'com.android.application'
apply plugin: 'com.github.ben-manes.versions' // ./gradlew dependencyUpdates -Drevision=release
apply plugin: 'sonar-runner'
apply plugin: 'android-apt'
apply plugin: 'com.google.gms.google-services'
repositories {
jcenter()
}
def versionMajor = 1
def versionMinor = 0
def versionPatch = 0
def versionBuild = 0
def versionMajorMinorPatchBuild = "${versionMajor}.${versionMinor}.${versionPatch}.${versionBuild}"
def versionString = "${versionMajor}.${versionMinor}.${versionPatch}"
def versionStringFull = "${versionMajor}.${versionMinor}.${versionPatch}.${versionBuild}"
android {
compileSdkVersion 25
buildToolsVersion "24.0.3"
dexOptions {
javaMaxHeapSize "4g"
}
defaultConfig {
applicationId "skipasses.android.abc.123.skipasses"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
// set dummy signing values if not defined in ~/.gradle/gradle.properties
if (!project.hasProperty('SkiPassKeyStoreFile')) {
println "Using dummy signing values"
project.ext.setProperty('SkiPassKeyStoreFile', 'dummy.keystore')
project.ext.setProperty('SkiPassKeyStorePassword', 'dummy!')
project.ext.setProperty('SkiPassKeyAlias', 'dummy')
project.ext.setProperty('SkiPassKeyPassword', 'dummy!')
}
// defined on the build server in the /usr/share/tomcat/.gradle/gradle.properties
signingConfigs {
release {
storeFile file(SkiPassKeyStoreFile)
storePassword SkiPassKeyStorePassword
keyAlias SkiPassKeyAlias
keyPassword SkiPassKeyPassword
}
lwa {
storeFile file('keystore.jks')
keyAlias 'androiddebugkey'
keyPassword 'android'
storePassword 'android'
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
buildTypes {
release {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "String", "VERSION_NAME_FULL", "\"${versionString}\""
signingConfig signingConfigs.release
}
debug {
versionNameSuffix '-DEV'
buildConfigField "String", "VERSION_NAME_FULL", "\"${versionStringFull}${versionNameSuffix}\""
}
beta {
versionNameSuffix '-BETA'
//noinspection GroovyAssignabilityCheck
signingConfig android.signingConfigs.debug
zipAlignEnabled true
buildConfigField "String", "VERSION_NAME_FULL", "\"${versionStringFull}${versionNameSuffix}\""
}
}
lintOptions {
abortOnError false
}
}
ext {
// versions for libraries that multiple dependencies
supportLibVersion = '25.0.0'
dagger = '2.7'
butterknife = '8.4.0'
pocketknife = '3.2.1'
}
dependencies {
// Support Libraries
compile "com.android.support:appcompat-v7:${supportLibVersion}"
compile "com.android.support:design:${supportLibVersion}"
// Dependency Injection dependencies
compile "com.google.dagger:dagger:${dagger}"
apt "com.google.dagger:dagger-compiler:${dagger}"
// View Binding
compile "com.jakewharton:butterknife:${butterknife}"
apt "com.jakewharton:butterknife-compiler:${butterknife}"
compile "com.vikingsen:pocketknife-core:${pocketknife}"
apt "com.vikingsen:pocketknife-compiler:${pocketknife}"
// Unit Testing
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
// Firebase
compile 'com.google.firebase:firebase-auth:9.8.0'
compile 'com.firebaseui:firebase-ui-database:0.6.1'
compile 'com.firebaseui:firebase-ui-auth:0.6.1'
compile 'com.google.firebase:firebase-core:9.8.0'
compile 'com.android.support:support-v4:25.0.0'
compile 'com.android.support:recyclerview-v7:25.0.0'
testCompile 'junit:junit:4.12'
provided 'javax.annotation:jsr250-api:1.0'
}
sonarqube { //./gradlew sonarqube aDebug
properties {
if (!project.hasProperty("abc123SonarHostUrl")) {
println '!!!! ABC123 Sonar properties must be set in your gradle.properties !!!!'
return
}
// Project Information
property "sonar.projectKey", "SkiPasses"
property "sonar.projectName", "SkiPasses"
property "sonar.projectVersion", versionMajorMinorPatchBuild
// Sonar Information
property "sonar.host.url", abcSonarHostUrl
property "sonar.jdbc.url", abcSonarJdbcUrl
property "sonar.jdbc.driverClassName", abcSonarJdbcDriver
property "sonar.jdbc.username", abcSonarUsername
property "sonar.jdbc.password", abcSonarPassword
properties["sonar.sources"] = "src/main" //android.sourceSets.main.java.srcDirs
properties["sonar.tests"] = android.sourceSets.androidTest.java.srcDirs
if (file("build/intermediates/classes/debug").exists()) {
properties["sonar.binaries"] = [file("build/intermediates/classes/debug")]
}
if (file("build/intermediates/classes/beta").exists()) {
properties["sonar.binaries"] = [file("build/intermediates/classes/beta")]
}
}
}
और गतिविधि:
package abc123.android.abc.123.skipasses.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import com.google.firebase.auth.FirebaseAuth;
import abc123.android.abc.123.skipasses.R;
public class DashboardActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dashboard);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
//Todo: figure out why the BuildConfig is not being fetched
// TextView textView = (TextView) findViewById(R.id.version_text);
// textView.setText(getString(R.string.version_number, BuildConfig.VERSION_NAME));
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
//TODO Create fragments for each menu item
if (id == R.id.nav_my_reservations) {
} else if (id == R.id.nav_make_reservation) {
} else if (id == R.id.nav_settings) {
} else if (id == R.id.nav_log_out) {
FirebaseAuth.getInstance().signOut();
Intent loginIntent = new Intent(DashboardActivity.this, LoginActivity.class);
startActivity(loginIntent);
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
मैं एक साफ निर्माण कर रही है की कोशिश की है यहाँ कोड है। मुझे डुप्लिकेट लाइब्रेरी नहीं मिल रही हैं। मैं नहीं देख सकता कि प्ले-सर्विसेज और फायरबेस नहीं हैं जहां संस्करण संख्याओं में अस्तर नहीं है। मैं नहीं देखता कि यह त्रुटि कैसे हो रही है। किसी भी मार्गदर्शन की सराहना की जाएगी।
लागू प्लगइन जोड़ें: फ़ाइल के नीचे 'com.google.gms.google-services'। –