Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AndroidX migration to solve problems in demo app. #131

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

emreakcan
Copy link

I couldn't run the demo app straight away, as I see some library upgrades are needed so I resolved the problem by small migration, now I can run the app.

Please warn me if it is not a necessary change.

@zsoltk
Copy link
Contributor

zsoltk commented Aug 25, 2020

Hello @emreakcan! For us it's the opposite: it works fine right now but compilation breaks in your branch. We've checked on two separate instances, same result. Would you like to investigate?

@emreakcan
Copy link
Author

Hello @emreakcan! For us it's the opposite: it works fine right now but compilation breaks in your branch. We've checked on two separate instances, same result. Would you like to investigate?

I will investigate with clean workspace and let you know, thank you.

@emreakcan
Copy link
Author

emreakcan commented Aug 25, 2020

@zsoltk For fresh start, I cloned the project again. With 2 different computers.

One worked okay, one gave following error, I'm comparing now to find the issue, it seems like a problem from my side.

Build result

> Task :binder:compileKotlin
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/Binder.kt: (49, 11): Unchecked cast: Consumer<in In> to Middleware<Out, In>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/Binder.kt: (102, 19): Unchecked cast: Observable<out Out> to Observable<In>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/Binder.kt: (112, 23): Enum argument can be null in Java, but exhaustive when contains no null branch
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/Binder.kt: (122, 28): Unchecked cast: Connection<*, *> to Connection<Any, Any>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/Binder.kt: (123, 28): Unchecked cast: Middleware<*, *>? to Middleware<Any, Any>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/middleware/Consumer.kt: (39, 41): Unchecked cast: Consumer<In> to Middleware<In, In>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/middleware/base/Middleware.kt: (30, 19): Unchecked cast: Consumer<In> to Middleware<Out, In>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/middleware/base/Middleware.kt: (37, 34): Unchecked cast: Consumer<In> to Middleware<Out, In>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/middleware/config/MiddlewareConfiguration.kt: (20, 42): Unchecked cast: Middleware<Any, *> to Middleware<Any, T>

> Task :binder:compileJava NO-SOURCE
> Task :binder:processResources NO-SOURCE
> Task :binder:classes UP-TO-DATE
> Task :binder:inspectClassesForKotlinIC
> Task :binder:jar

> Task :mvicore:compileKotlin
w: /Users/emreakcan/Desktop/MVICore/mvicore/src/main/java/com/badoo/mvicore/consumer/middleware/ConsumerMiddleware.kt: (3, 51): 'typealias Middleware<Out, In> = Middleware<Out, In>' is deprecated. Left for compatibility reasons
w: /Users/emreakcan/Desktop/MVICore/mvicore/src/main/java/com/badoo/mvicore/consumer/middleware/ConsumerMiddleware.kt: (9, 35): 'typealias Middleware<Out, In> = Middleware<Out, In>' is deprecated. Left for compatibility reasons
w: /Users/emreakcan/Desktop/MVICore/mvicore/src/main/java/com/badoo/mvicore/consumer/middleware/PlaybackMiddleware.kt: (50, 34): Unchecked cast: Any? to In
w: /Users/emreakcan/Desktop/MVICore/mvicore/src/main/java/com/badoo/mvicore/consumer/middleware/PlaybackMiddleware.kt: (55, 25): The corresponding parameter in the supertype 'Middleware' is named 'element'. This may cause problems when calling this function with named arguments.

> Task :mvicore:compileJava NO-SOURCE
> Task :mvicore:processResources NO-SOURCE
> Task :mvicore:classes UP-TO-DATE
> Task :mvicore:inspectClassesForKotlinIC
> Task :mvicore:jar
> Task :mvicore-plugin:common:compileKotlin
> Task :mvicore-plugin:common:compileJava NO-SOURCE
> Task :mvicore-plugin:common:processResources NO-SOURCE
> Task :mvicore-plugin:common:classes UP-TO-DATE
> Task :mvicore-plugin:common:inspectClassesForKotlinIC
> Task :mvicore-plugin:common:jar

> Task :mvicore-plugin:middleware:compileKotlin
w: /Users/emreakcan/Desktop/MVICore/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/DefaultPluginStore.kt: (53, 39): Name shadowed: connection
w: /Users/emreakcan/Desktop/MVICore/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/DefaultPluginStore.kt: (81, 39): Name shadowed: connection
w: /Users/emreakcan/Desktop/MVICore/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/DefaultPluginStore.kt: (92, 31): Parameter 'event' is never used

> Task :mvicore-plugin:middleware:compileJava NO-SOURCE
> Task :mvicore-plugin:middleware:processResources NO-SOURCE
> Task :mvicore-plugin:middleware:classes UP-TO-DATE
> Task :mvicore-plugin:middleware:inspectClassesForKotlinIC
> Task :mvicore-plugin:middleware:jar
> Task :mvicore-android:preBuild UP-TO-DATE
> Task :mvicore-android:preDebugBuild UP-TO-DATE
> Task :mvicore-android:compileDebugAidl NO-SOURCE
> Task :mvicore-android:checkDebugManifest
> Task :mvicore-android:compileDebugRenderscript NO-SOURCE
> Task :mvicore-android:generateDebugBuildConfig
> Task :mvicore-android:generateDebugResValues
> Task :mvicore-android:generateDebugResources
> Task :mvicore-android:packageDebugResources
> Task :mvicore-android:processDebugManifest
> Task :mvicore-android:generateDebugRFile

> Task :mvicore-android:compileDebugKotlin FAILED
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/AndroidBindings.kt: (3, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/AndroidBindings.kt: (7, 21): Unresolved reference: LifecycleOwner
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/BaseAndroidBinderLifecycle.kt: (3, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/BaseAndroidBinderLifecycle.kt: (4, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/BaseAndroidBinderLifecycle.kt: (7, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/BaseAndroidBinderLifecycle.kt: (11, 23): Unresolved reference: AndroidLifecycle
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/BaseAndroidBinderLifecycle.kt: (12, 59): Unresolved reference: DefaultLifecycleObserver
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/BaseAndroidBinderLifecycle.kt: (16, 5): Unresolved reference: LifecycleObserver
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/BaseAndroidBinderLifecycle.kt: (19, 27): Unresolved reference: AndroidLifecycle
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/BaseAndroidBinderLifecycle.kt: (20, 63): Unresolved reference: DefaultLifecycleObserver
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/CreateDestroyBinderLifecycle.kt: (3, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/CreateDestroyBinderLifecycle.kt: (4, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/CreateDestroyBinderLifecycle.kt: (5, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/CreateDestroyBinderLifecycle.kt: (10, 23): Unresolved reference: AndroidLifecycle
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/CreateDestroyBinderLifecycle.kt: (14, 18): Unresolved reference: DefaultLifecycleObserver
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/CreateDestroyBinderLifecycle.kt: (15, 13): 'onCreate' overrides nothing
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/CreateDestroyBinderLifecycle.kt: (15, 42): Unresolved reference: LifecycleOwner
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/CreateDestroyBinderLifecycle.kt: (19, 13): 'onDestroy' overrides nothing
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/CreateDestroyBinderLifecycle.kt: (19, 43): Unresolved reference: LifecycleOwner
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/LifecycleExtensions.kt: (3, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/LifecycleExtensions.kt: (6, 5): Unresolved reference: Lifecycle
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/LifecycleExtensions.kt: (10, 5): Unresolved reference: Lifecycle
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/LifecycleExtensions.kt: (14, 5): Unresolved reference: Lifecycle
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/ResumePauseBinderLifecycle.kt: (3, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/ResumePauseBinderLifecycle.kt: (4, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/ResumePauseBinderLifecycle.kt: (5, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/ResumePauseBinderLifecycle.kt: (10, 23): Unresolved reference: AndroidLifecycle
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/ResumePauseBinderLifecycle.kt: (14, 18): Unresolved reference: DefaultLifecycleObserver
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/ResumePauseBinderLifecycle.kt: (15, 13): 'onResume' overrides nothing
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/ResumePauseBinderLifecycle.kt: (15, 42): Unresolved reference: LifecycleOwner
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/ResumePauseBinderLifecycle.kt: (19, 13): 'onPause' overrides nothing
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/ResumePauseBinderLifecycle.kt: (19, 41): Unresolved reference: LifecycleOwner
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/StartStopBinderLifecycle.kt: (3, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/StartStopBinderLifecycle.kt: (4, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/StartStopBinderLifecycle.kt: (5, 16): Unresolved reference: arch
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/StartStopBinderLifecycle.kt: (10, 23): Unresolved reference: AndroidLifecycle
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/StartStopBinderLifecycle.kt: (14, 18): Unresolved reference: DefaultLifecycleObserver
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/StartStopBinderLifecycle.kt: (15, 13): 'onStart' overrides nothing
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/StartStopBinderLifecycle.kt: (15, 41): Unresolved reference: LifecycleOwner
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/StartStopBinderLifecycle.kt: (19, 13): 'onStop' overrides nothing
e: /Users/emreakcan/Desktop/MVICore/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/StartStopBinderLifecycle.kt: (19, 40): Unresolved reference: LifecycleOwner

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':mvicore-android:compileDebugKotlin'.
> Compilation error. See log for more details

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 17s
19 actionable tasks: 19 executed

Result of gradle build --warning-mode=all
mvicore-demo-app selected, build variant is debug.

> Configure project :mvicore-plugin:idea
The AbstractArchiveTask.baseName property has been deprecated. This is scheduled to be removed in Gradle 7.0. Please use the archiveBaseName property instead. See https://docs.gradle.org/6.5.1/dsl/org.gradle.api.tasks.bundling.AbstractArchiveTask.html#org.gradle.api.tasks.bundling.AbstractArchiveTask:baseName for more details.
The AbstractArchiveTask.destinationDir property has been deprecated. This is scheduled to be removed in Gradle 7.0. Please use the destinationDirectory property instead. See https://docs.gradle.org/6.5.1/dsl/org.gradle.api.tasks.bundling.AbstractArchiveTask.html#org.gradle.api.tasks.bundling.AbstractArchiveTask:destinationDir for more details.
The compile configuration has been deprecated for resolution. This will fail with an error in Gradle 7.0. Please resolve the compileClasspath configuration instead. Consult the upgrading guide for further information: https://docs.gradle.org/6.5.1/userguide/upgrading_version_5.html#dependencies_should_no_longer_be_declared_using_the_compile_and_runtime_configurations
        at build_50jmmp1rhlmmaaaisn4j9sfee$_run_closure8.doCall(/Users/emreakcan/Desktop/MVICore/mvicore-plugin/idea/build.gradle:62)
        (Run with --stacktrace to get the full stack trace of this deprecation warning.)

> Task :binder:compileKotlin
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/Binder.kt: (49, 11): Unchecked cast: Consumer<in In> to Middleware<Out, In>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/Binder.kt: (102, 19): Unchecked cast: Observable<out Out> to Observable<In>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/Binder.kt: (112, 23): Enum argument can be null in Java, but exhaustive when contains no null branch
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/Binder.kt: (122, 28): Unchecked cast: Connection<*, *> to Connection<Any, Any>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/Binder.kt: (123, 28): Unchecked cast: Middleware<*, *>? to Middleware<Any, Any>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/middleware/Consumer.kt: (39, 41): Unchecked cast: Consumer<In> to Middleware<In, In>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/middleware/base/Middleware.kt: (30, 19): Unchecked cast: Consumer<In> to Middleware<Out, In>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/middleware/base/Middleware.kt: (37, 34): Unchecked cast: Consumer<In> to Middleware<Out, In>
w: /Users/emreakcan/Desktop/MVICore/binder/src/main/java/com/badoo/binder/middleware/config/MiddlewareConfiguration.kt: (20, 42): Unchecked cast: Middleware<Any, *> to Middleware<Any, T>

> Task :binder:compileTestKotlin
w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
    /Users/emreakcan/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.72/3adfc2f4ea4243e01204be8081fe63bde6b12815/kotlin-stdlib-jdk7-1.3.72.jar (version 1.3)
    /Users/emreakcan/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.0.6/3d499d3b7768f88c4796e5a1e357933e11a8936d/kotlin-reflect-1.0.6.jar (version 1.0)
    /Users/emreakcan/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.72/8032138f12c0180bc4e51fe139d4c52b46db6109/kotlin-stdlib-1.3.72.jar (version 1.3)
    /Users/emreakcan/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.72/6ca8bee3d88957eaaaef077c41c908c9940492d8/kotlin-stdlib-common-1.3.72.jar (version 1.3)
w: Consider providing an explicit dependency on kotlin-reflect 1.3 to prevent strange errors
w: Some runtime JAR files in the classpath have an incompatible version. Consider removing them from the classpath

> Task :binder:test FAILED

com.badoo.binder.LifecycleTest > binder does not resubscribe on consecutive begin events FAILED
    org.mockito.exceptions.base.MockitoException at LifecycleTest.kt:99
        Caused by: java.lang.UnsupportedOperationException at LifecycleTest.kt:99
            Caused by: java.lang.IllegalArgumentException at LifecycleTest.kt:99

9 tests completed, 1 failed

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':binder:test'.
> There were failing tests. See the report at: file:///Users/emreakcan/Desktop/MVICore/binder/build/reports/tests/test/index.html

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 59s

@emreakcan emreakcan closed this Aug 25, 2020
@zsoltk
Copy link
Contributor

zsoltk commented Aug 25, 2020

@emreakcan Did you find the issue?

@emreakcan
Copy link
Author

@zsoltk not yet, but since it's from my side I closed the PR. I will give an update when I find it.

I'm suspected about Android Studio version, gradle version, jdk version, sdk version etc.
I couldn't figure out why android.arch is not found. Let me know if you have any idea.

@zsoltk
Copy link
Contributor

zsoltk commented Aug 25, 2020

No ideas unfortunately. Let me know if you figure it out.

using android x for lifecycle-common.
@emreakcan
Copy link
Author

emreakcan commented Sep 10, 2020

@zsoltk hello, I did further investigation but still a mystery, also asked here https://stackoverflow.com/questions/63811131/android-arch-lifecyclecommon-java8-is-not-recognised

Are you thinking to migrate this project to andriodX ? if so, I can continue to work on it, I didn't migrate the support libraries yet.

And can you please check my new changes if it compiles for you? (added 2 commits)
if not, please let me know the error.

@emreakcan emreakcan reopened this Sep 10, 2020
@Zhuinden
Copy link

Zhuinden commented Sep 10, 2020

Discussion apparently continued at https://www.reddit.com/r/androiddev/comments/iqa3dm/why_androidarch_doesnt_work_anymore/ .

EDIT: But I tried and it works on my machine. You might just need to invalidate caches, restart, and clean rebuild.

@emreakcan
Copy link
Author

@Zhuinden thanks !, that reddit post is mine also.
I even reinstalled the studio but no luck! I think I have to reinstall gradle.

@emreakcan
Copy link
Author

emreakcan commented Sep 11, 2020

@Zhuinden @zsoltk
Changing
classpath 'com.android.tools.build:gradle:3.4.2' to
classpath 'com.android.tools.build:gradle:3.1.4'

Works for me. But still doesn't explain why 3.4.2 doesn't work.

@zsoltk, Like I said if migrating to androidX is okay, I can continue, if it's not desired, I will stop working on it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants