gueei / AndroidBinding

MVVM for Android
MIT License
349 stars 77 forks source link

android-binding-v0.6-build718.jar embeds android-support-v4... #12

Open CosminRadu opened 9 years ago

CosminRadu commented 9 years ago

The built JAR file provided in the root of this enlistment embeds instead of references Google's android-support-v4 library (as opposed to the earlier released android-binding-v30-0.52.jar which does not). This difference makes it difficult to build a project that references both the android-bindings JAR and the app compat library (com.android.support:appcompat-v7) due to duplicate errors raised during DEX-ing. BTW, I noticed that the ".fatjar" file under androidbindingv30 does attempt to exclude android-support-v4: excludes=<jar|android-support-v4.jar>;<jar|annotations.jar> but for some reason this didn't seem to stick...

Could you update the published binary to not include the external bits?

alexei-28 commented 5 years ago

Android Studio 3.2.1, Gradle 4.6. Java 1.8

In module1 I use in dir libs/android-binding-v0.6-build718.jar

It's containt class:

android\support\v4\accessibilityservice\AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl.class in project/build.gradle:

dependencies {

classpath 'com.android.tools.build:gradle:3.2.1'
in app/build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.myproject"
        minSdkVersion 23
        targetSdkVersion 28
        versionCode 421
        versionName "2.1.421"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
    }
}

def AAVersion = '4.5.2'

dependencies {
    annotationProcessor "org.androidannotations:androidannotations:$AAVersion"
    annotationProcessor "org.androidannotations:ormlite:$AAVersion"

    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:animated-vector-drawable:28.0.0'
    implementation 'com.android.support:exifinterface:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support:customtabs:28.0.0'
    implementation 'com.android.support:support-media-compat:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'

    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'org.apache.commons:commons-lang3:3.8.1'
    implementation 'org.apache.httpcomponents:httpclient:4.5.6'
    implementation 'com.google.android.gms:play-services-gcm:16.0.0'
    implementation 'com.google.code.gson:gson:2.8.2'
    implementation 'com.j256.ormlite:ormlite-android:5.1'
    implementation 'commons-io:commons-io:2.6'
    implementation "org.androidannotations:androidannotations-api:$AAVersion"
    implementation "org.androidannotations:ormlite-api:$AAVersion"

    implementation project(':module1')
    implementation project(':module2')

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

here dependencies:

+--- com.google.android.gms:play-services-gcm:16.0.0 | +--- com.google.android.gms:play-services-base:16.0.1 | | +--- com.google.android.gms:play-services-basement:16.0.1 | | | --- com.android.support:support-v4:26.1.0 -> 28.0.0 () | | --- com.google.android.gms:play-services-tasks:16.0.1 | | --- com.google.android.gms:play-services-basement:16.0.1 () | +--- com.google.android.gms:play-services-basement:16.0.1 () | +--- com.google.android.gms:play-services-iid:16.0.0 | | +--- com.google.android.gms:play-services-base:16.0.1 () | | +--- com.google.android.gms:play-services-basement:16.0.1 () | | +--- com.google.android.gms:play-services-stats:16.0.1 | | | --- com.google.android.gms:play-services-basement:16.0.1 () | | --- com.google.android.gms:play-services-tasks:16.0.1 () | --- com.google.android.gms:play-services-stats:16.0.1 ()

But I get error:

:app:transformDexArchiveWithExternalLibsDexMergerForDebugD8: Program type already present: android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl
 FAILED
gueei commented 5 years ago

Hi, the code is not updated since android 5 as new features on android and the approach of android SDK makes this library lost its original purpose.

Unless you're planning to target for android 4 or earlier, I suggest you use different frameworks instead of android binding.

On Mon, Dec 17, 2018, 18:07 lmdic notifications@github.com wrote:

Android Studio 3.2.1, Gradle 4.6. Java 1.8

In module1 I use in dir libs/android-binding-v0.6-build718.jar

It's containt class:

android\support\v4\accessibilityservice\AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl.class

in project/build.gradle:

dependencies {

classpath 'com.android.tools.build:gradle:3.2.1' in app/build.gradle:

apply plugin: 'com.android.application'

android { compileSdkVersion 28 defaultConfig { applicationId "com.myproject" minSdkVersion 23 targetSdkVersion 28 versionCode 421 versionName "2.1.421" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
}

}

def AAVersion = '4.5.2'

dependencies { annotationProcessor "org.androidannotations:androidannotations:$AAVersion" annotationProcessor "org.androidannotations:ormlite:$AAVersion"

implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:animated-vector-drawable:28.0.0'
implementation 'com.android.support:exifinterface:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:customtabs:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'

implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'org.apache.commons:commons-lang3:3.8.1'
implementation 'org.apache.httpcomponents:httpclient:4.5.6'
implementation 'com.google.android.gms:play-services-gcm:16.0.0'
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.j256.ormlite:ormlite-android:5.1'
implementation 'commons-io:commons-io:2.6'
implementation "org.androidannotations:androidannotations-api:$AAVersion"
implementation "org.androidannotations:ormlite-api:$AAVersion"

implementation project(':module1')
implementation project(':module2')

testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

}

here dependencies:

+--- com.google.android.gms:play-services-gcm:16.0.0 | +--- com.google.android.gms:play-services-base:16.0.1 | | +--- com.google.android.gms:play-services-basement:16.0.1 | | | --- com.android.support:support-v4:26.1.0 -> 28.0.0 (

) | | --- com.google.android.gms:play-services-tasks:16.0.1 | | --- com.google.android.gms:play-services-basement:16.0.1 () | +--- com.google.android.gms:play-services-basement:16.0.1 (

) | +--- com.google.android.gms:play-services-iid:16.0.0 | | +--- com.google.android.gms:play-services-base:16.0.1 () | | +--- com.google.android.gms:play-services-basement:16.0.1 (

) | | +--- com.google.android.gms:play-services-stats:16.0.1 | | | --- com.google.android.gms:play-services-basement:16.0.1 () | | --- com.google.android.gms:play-services-tasks:16.0.1 ( ) | --- com.google.android.gms:play-services-stats:16.0.1 ()

But I get error:

:app:transformDexArchiveWithExternalLibsDexMergerForDebugD8: Program type already present: android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl FAILED

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/gueei/AndroidBinding/issues/12#issuecomment-447789605, or mute the thread https://github.com/notifications/unsubscribe-auth/ABk8X0eIV0T8bjZhzYjl-lAVufiHsQg6ks5u52ztgaJpZM4DhOtw .