grazel
grazel copied to clipboard
./gradlew migrateToBazel and dynamic modules
Hello,
I have integraded grazel in a multi module project but I got failure when running the gradle task ./gradlew migrateToBazel
this is the stack trace
Caused by: java.util.NoSuchElementException: List contains no element matching the predicate.
at com.grab.grazel.migrate.android.DefaultAndroidManifestParser.androidManifestFile(AndroidManifestParser.kt:86)
at com.grab.grazel.migrate.android.DefaultAndroidManifestParser.parsePackageName(AndroidManifestParser.kt:49)
at com.grab.grazel.migrate.android.DefaultAndroidLibraryDataExtractor.extract(AndroidLibraryDataExtractor.kt:84)
at com.grab.grazel.migrate.android.DefaultAndroidLibraryDataExtractor.extract(AndroidLibraryDataExtractor.kt:65)
at com.grab.grazel.migrate.builder.KtAndroidLibTargetBuilder.build(KtAndroidLibTargetBuilder.kt:69)
at com.grab.grazel.migrate.internal.ProjectBazelFileBuilder.build(ProjectBazelFileBuilder.kt:39)
at com.grab.grazel.tasks.internal.GenerateBazelScriptsTask.action(GenerateBazelScriptsTask.kt:65)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:555)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:540)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:523)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:108)
Hello this can happen if there is an Android library module without AndroidManifest.xml present with package name.
Could you please verify if all modules have AndroidManifest with package names present?
We need to run a validation and a descriptive error instead of failing like this.
Hello this can happen if there is an Android library module without AndroidManifest.xml present with package name.
Could you please verify if all modules have AndroidManifest with package names present?
I checked again and all modules has the AndroidManifest with package names present, is there anyway to bypass this problem ?
I converted the module from dynamic feature id("com.android.dynamic-feature")
to android library id("com.android.library")
and now grazel worked fine
Thanks for the update, closing this please reopen if anything comes up.