Git Product home page Git Product logo

app-bundle-samples's People

Contributors

codingjeremy avatar dependabot[bot] avatar dovix91 avatar ggfan avatar hannesa2 avatar katebo-g avatar keyboardsurfer avatar kokoro-team avatar scja avatar uketki avatar wojtek-kalicinski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

app-bundle-samples's Issues

Error receiving broadcast Intent { act=com.google.android.play.core.splitinstall.receiver.SplitInstallUpdateIntentService

Fatal Exception: java.lang.RuntimeException: Error receiving broadcast Intent { act=com.google.android.play.core.splitinstall.receiver.SplitInstallUpdateIntentService flg=0x40000010 pkg=com.xxx.xxx (has extras) } in com.google.android.play.core.a.c@f8b72c9
       at android.app.LoadedApk$ReceiverDispatcher$Args.run + 932(LoadedApk.java:932)
       at android.os.Handler.handleCallback + 815(Handler.java:815)
       at android.os.Handler.dispatchMessage + 104(Handler.java:104)
       at android.os.Looper.loop + 207(Looper.java:207)
       at android.app.ActivityThread.main + 5788(ActivityThread.java:5788)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 789(ZygoteInit.java:789)
       at com.android.internal.os.ZygoteInit.main + 679(ZygoteInit.java:679)
Caused by java.util.ConcurrentModificationException
       at java.util.HashMap$HashIterator.nextEntry + 787(HashMap.java:787)
       at java.util.HashMap$KeyIterator.next + 814(HashMap.java:814)
       at com.google.android.play.core.listener.a.a$1385ff(a.java)
       at com.google.android.play.core.splitinstall.k.a(k.java:2000)
       at com.google.android.play.core.splitinstall.k.a(k.java:2000)
       at com.google.android.play.core.splitinstall.SplitInstallSessionState.status(SplitInstallSessionState.java:2000)
       at com.google.android.play.core.splitinstall.k.a(k.java:2000)
       at com.google.android.play.core.splitinstall.k.a(k.java:2000)
       at com.google.android.play.core.listener.b.onReceive(b.java)
       at android.app.LoadedApk$ReceiverDispatcher$Args.run + 922(LoadedApk.java:922)
       at android.os.Handler.handleCallback + 815(Handler.java:815)
       at android.os.Handler.dispatchMessage + 104(Handler.java:104)
       at android.os.Looper.loop + 207(Looper.java:207)
       at android.app.ActivityThread.main + 5788(ActivityThread.java:5788)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 789(ZygoteInit.java:789)
       at com.android.internal.os.ZygoteInit.main + 679(ZygoteInit.java:679)

Missing file

Hello world of java is missing would it be possible to upload it?

Dynamic feature module resource not found on some devices

I have a dynamic feature module that has drawable resources that I want to use inside the dynamic feature module. It works, but there are crash reports from some devices indicating that the drawable from the dynamic module can not be found:

android.content.res.Resources$NotFoundException: 
  at android.content.res.ResourcesImpl.getValueForDensity (ResourcesImpl.java:285)
  at android.content.res.Resources.getDrawableForDensity (Resources.java:964)
  at android.content.res.Resources.getDrawable (Resources.java:880)
  at android.content.Context.getDrawable (Context.java:689)
  ...

I don't have a way to reproduce it yet. I am using the DynamicNavHostFragment for loading the module.

Any idea what could be the problem or is there a way to debug this, maybe listing all apks installed for the app with the included resources?

edit: The drawables are used programmatically with Context.getDrawable(), did not try to use them in a layout yet.

Error code -2 when creating a new module for a shipped application

I have created an application (source available here: https://gitlab.javinator9889.com/Javinator9889/handwashing-reminder) and at first deployment I created only two modules and the base one:

  • appintro module
  • ads module
  • Base application

After some time I decided to create two new modules for specific devices:

  • okhttp module (Android 5.0 and higher)
  • okhttplegacy module (for Android 4.4 or lower)

The point is that if I try to update an already installed application the new module is MODULE_UNAVAILABLE (error code -2 - see Android Developers. The only solution I found is to completely remove the installed app and install it again. At this point, the module installs successfully.

Is there anyway to avoid this behaviour? The actual branch I am working on is development (development branch).

Any help is welcomed ๐Ÿ˜„

SplitCompat.installActivity() or SplitCompat.install()

Why you are using SplitCompat.install() in activity here?

According documentation it should be SplitCompat.installActivity() right?

In my app, I have still issue with missing resources in dynamic modules. I'm using SplitCompat.install() in application class and SplitCompat.installActivity() in every activity of dynamic module. But it still crashing, the only difference I found it this.

Problem with instrumentation tests from feature module

Since commit Bump versions the instrumentation tests no longer work (while using the command line ./gradlew connectedAndroidTest --no-parallel). It seems that updating the gradle version causes this error. The instrumentation tests work using version 3.4.1 and they don't work with the bumped versions 3.6.0-beta05 and 4.0.0-alpha07.

If I run ./gradlew connectedAndroidTest --no-parallel on latest commit without any changes to the code I get the following stacktrace:

> Task :features:assets:processDebugAndroidTestResources FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':features:assets:processDebugAndroidTestResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Android resource linking failed
     /Users/maartenvanwalstijn/.gradle/caches/transforms-2/files-2.1/14817984f8ff4b589cc7f547995b1e7b/core-1.6.4/AndroidManifest.xml:9:5-278: AAPT: error: resource style/Theme.PlayCore.Transparent (aka com.google.android.samples.dynamicfeatures.ondemand.assets.test:style/Theme.PlayCore.Transparent) not found.

If I run ./gradlew connectedAndroidTest --no-parallel on Bump version commit, while adding the ndkversion, I get the following stacktrace. In this build I used the gradle version 3.6.0-beta05.

> Task :app:connectedDebugAndroidTest
Starting 1 tests on Pixel_2_API_28(AVD) - 9

> Task :features:native:externalNativeBuildDebug
Build hello-jni_armeabi-v7a
ninja: Entering directory /Users/maartenvanwalstijn/app-bundle-samples/DynamicFeatures/features/native/.cxx/cmake/debug/armeabi-v7a'
ninja: no work to do.
Build hello-jni_arm64-v8a
ninja: Entering directory /Users/maartenvanwalstijn/app-bundle-samples/DynamicFeatures/features/native/.cxx/cmake/debug/arm64-v8a'
ninja: no work to do.
Build hello-jni_x86
ninja: Entering directory /Users/maartenvanwalstijn/app-bundle-samples/DynamicFeatures/features/native/.cxx/cmake/debug/x86'
ninja: no work to do.
Build hello-jni_x86_64
ninja: Entering directory /Users/maartenvanwalstijn/app-bundle-samples/DynamicFeatures/features/native/.cxx/cmake/debug/x86_64'
ninja: no work to do.

> Task :features:initialInstall:connectedDebugAndroidTest
The APKs have been extracted in the directory: /var/folders/w2/w24g2xcs6_x465bn5qhhr8v40000gn/T/apkSelect1907910629298317514
Starting 1 tests on Pixel_2_API_28(AVD) - 9

com.google.android.samples.dynamicfeatures.InitialInstallActivityTest > launchKotlinSampleActivity[Pixel_2_API_28(AVD) - 9] FAILED 
        java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat.
        at androidx.appcompat.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:756)
[InstrumentationResultParser]: Ignoring repeated failed event for com.google.android.samples.dynamicfeatures.InitialInstallActivityTest#launchKotlinSampleActivity. Stack: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.google.android.samples.dynamicfeatures.ondemand/com.google.android.samples.dynamicfeatures.InitialInstallActivity}: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat.
at androidx.appcompat.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:756)
at androidx.appcompat.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:196)
at androidx.appcompat.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:86)
at androidx.appcompat.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:260)
at androidx.appcompat.app.AppCompatDelegate.create(AppCompatDelegate.java:182)
at androidx.appcompat.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520)
at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:71)
at com.google.android.samples.dynamicfeatures.InitialInstallActivity.onCreate(InitialInstallActivity.kt:27)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at androidx.test.runner.MonitoringInstrumentation.callActivityOnCreate(MonitoringInstrumentation.java:674)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
... 11 more

Tests on Pixel_2_API_28(AVD) - 9 failed: Instrumentation run failed due to Process crashed.

> Task :features:initialInstall:connectedDebugAndroidTest FAILED

FAILURE: Build failed with an exception.

If I downgrade only the gradle version to 3.4.1 (either latest commit or Bump version commit) the instrumentation tests are running again.

getting the crash when open the module #1

Hi ,
I am getting the crash while opening the module from the app. I was uploaded the .aab file into play store. I run the app downloaded from the play store. some times the module was opening after uninstall and reinstall the app then the module get crash some times.

PLease help me to resolve this issue. I struck over this.

I got this crash report in the logcat.

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.testDynamic, PID: 5047
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.testDynamic/com.testDynamic.module.NumberFacts}: java.lang.ClassNotFoundException: Didn't find class "com.testDynamic.module.NumberFacts" on path: DexPathList[[zip file "/data/app/com.testDynamic-1/base.apk", zip file "/data/app/com.testDynamic-1/split_config.en.apk", zip file "/data/app/com.testDynamic-1/split_config.xxhdpi.apk"],nativeLibraryDirectories=[/data/app/com.testDynamic-1/lib/arm64, /system/lib64, /vendor/lib64]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2626)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2785)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1532)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6342)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:880)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.testDynamic.module.NumberFacts" on path: DexPathList[[zip file "/data/app/com.testDynamic-1/base.apk", zip file "/data/app/com.testDynamic-1/split_config.en.apk", zip file "/data/app/com.testDynamic-1/split_config.xxhdpi.apk"],nativeLibraryDirectories=[/data/app/com.testDynamic-1/lib/arm64, /system/lib64, /vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.Instrumentation.newActivity(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2616)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2785)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1532)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6342)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:880)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)
Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.testDynamic-1/split_config.en.apk
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:373)
at dalvik.system.DexFile.(DexFile.java:113)
at dalvik.system.DexFile.(DexFile.java:78)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:359)
at dalvik.system.DexPathList.makeElements(DexPathList.java:323)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:263)
at dalvik.system.DexPathList.(DexPathList.java:126)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:48)
at dalvik.system.PathClassLoader.(PathClassLoader.java:64)
at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:58)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:522)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:555)
at android.app.ActivityThread.getTopLevelResources(ActivityThread.java:1925)
at android.app.LoadedApk.getResources(LoadedApk.java:768)
at android.app.ContextImpl.(ContextImpl.java:2078)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2023)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5393)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1602)
... 6 more
Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.testDynamic-1/split_config.xxhdpi.apk
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:373)
at dalvik.system.DexFile.(DexFile.java:113)
at dalvik.system.DexFile.(DexFile.java:78)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:359)
at dalvik.system.DexPathList.makeElements(DexPathList.java:323)
2019-06-13 12:24:23.493 5047-5047/? E/AndroidRuntime: at dalvik.system.DexPathList.makeDexElements(DexPathList.java:263)
at dalvik.system.DexPathList.(DexPathList.java:126)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:48)
at dalvik.system.PathClassLoader.(PathClassLoader.java:64)
at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:58)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:522)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:555)
at android.app.ActivityThread.getTopLevelResources(ActivityThread.java:1925)
at android.app.LoadedApk.getResources(LoadedApk.java:768)
at android.app.ContextImpl.(ContextImpl.java:2078)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2023)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5393)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1602)

Android App Bundle Buid Error element is missing the 'include' attribute (split: 'kotlin')

hi,there is something wrong when i try to upload the app.aab to google play.So i use bundletool to build-apks by the app.abb,the command line print the error message like this,Android App Bundle Buid Error element is missing the 'include' attribute (split: 'kotlin'),but i check the manifest file ,there is a 'include' attribute behind 'fusing', so i am confused.how can i fix this problem

Repo migrated to where?

This repo has been migrated to github.com/android/app-bundle. Please check that repo for future updates. Thank you!

github.com/android/app-bundle redirects me back here to github.com/android/app-bundle-samples.

Is this the right repo?

Error code -3

Hello, I looking solution for:

Non-fatal Exception: com.google.android.play.core.install.InstallException: Install Error: -3
       at com.google.android.play.core.appupdate.i.b(i.java:6)
       at com.google.android.play.core.internal.o.a(o.java:6)
       at com.google.android.play.core.internal.j.onTransact(j.java)
       at android.os.Binder.execTransact + 446(Binder.java:446)

Unfortunately I didn't find at docs & issues any information, about error -3. What's reason of that?

Device:
LGE Nexus 4
Android 5.1.1
Free disc space: 4.56 GB
Free ram: 926 MB

Tests in dynamic feature module fail when run through gradle command line

I wrote some tests for a Dynamic Feature Module inside DynamicFeature/src/test/java/my/package/MyTest.kt. These tests rely on a class that is hosted in the main app module. If I run the tests using the Android Studio configuration they run without problems, but on the other hand if I use ./gradlew test they fail saying that the class on the main module can't be found:

    java.lang.NoClassDefFoundError
        Caused by: java.lang.ClassNotFoundException

In order to include the tests inside my CI, I would need either to know how to get the command line order that Android Studio is using, or figure out why when running the gradle task, it is not able to find the main module app.

Any help appreciated.
Thanks in advance!

This version of Android Studio cannot open this project, please retry with Android Studio 4.0 or newer

when using this sample's PlayAssetDelivery/NativeSample code in my project with android studio 3.6 I get the error:

com.intellij.openapi.externalSystem.model.ExternalSystemException: This version of Android Studio cannot open this project, please retry with Android Studio 4.0 or newer.
	at org.jetbrains.plugins.gradle.model.ProjectImportAction.addBuildModels(ProjectImportAction.java:252)
	at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:127)
	at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:48)
	at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:77)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.runAction(ClientProvidedPhasedActionRunner.java:120)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.run(ClientProvidedPhasedActionRunner.java:110)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.buildFinished(ClientProvidedPhasedActionRunner.java:104)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:382)
	at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:364)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
	at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:352)
	at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:339)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:231)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:150)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:325)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:235)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:141)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at com.sun.proxy.$Proxy16.buildFinished(Unknown Source)
	at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:184)
	at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:127)
	at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:75)
	at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:67)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:189)
	at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
	at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:67)
	at org.gradle.internal.invocation.GradleBuildController.configure(GradleBuildController.java:61)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:62)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:63)
	at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
	at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:51)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:45)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
	at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:80)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
	at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
	at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:60)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:38)
	at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
	at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
	at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
	at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:68)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
	at org.gradle.util.Swapper.swap(Swapper.java:38)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
java.lang.RuntimeException: This version of Android Studio cannot open this project, please retry with Android Studio 4.0 or newer.
	at com.android.build.gradle.internal.ide.StudioVersions.verifyStudioIsNotOld(StudioVersions.kt:54)
	at com.android.build.gradle.internal.ide.StudioVersions.verifyStudioIsNotOld(StudioVersions.kt:34)
	at com.android.build.gradle.internal.ide.ModelBuilder.buildAndroidProject(ModelBuilder.java:335)
	at com.android.build.gradle.internal.ide.ModelBuilder.buildAll(ModelBuilder.java:228)
	at com.android.build.gradle.internal.ide.ModelBuilder.buildAll(ModelBuilder.java:145)
	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$ParameterizedBuildOperationWrappingToolingModelBuilder$1$1.create(DefaultToolingModelBuilderRegistry.java:140)
	at org.gradle.api.internal.project.DefaultProjectStateRegistry.withLenientState(DefaultProjectStateRegistry.java:134)
	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$ParameterizedBuildOperationWrappingToolingModelBuilder$1.call(DefaultToolingModelBuilderRegistry.java:136)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$ParameterizedBuildOperationWrappingToolingModelBuilder.buildAll(DefaultToolingModelBuilderRegistry.java:133)
	at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getParameterizedModel(DefaultBuildController.java:102)
	at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getModel(DefaultBuildController.java:84)
	at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter$2.getModel(InternalBuildActionAdapter.java:74)
	at org.gradle.tooling.internal.consumer.connection.BuildControllerAdapter.getModel(BuildControllerAdapter.java:62)
	at org.jetbrains.plugins.gradle.model.ProjectImportAction$MyBuildController.getModel(ProjectImportAction.java:466)
	at com.android.tools.idea.gradle.project.sync.idea.svs.AndroidExtraModelProvider.findParameterizedAndroidModel(AndroidExtraModelProvider.kt:130)
	at com.android.tools.idea.gradle.project.sync.idea.svs.AndroidExtraModelProvider.populateAndroidModels(AndroidExtraModelProvider.kt:74)
	at com.android.tools.idea.gradle.project.sync.idea.svs.AndroidExtraModelProvider.populateBuildModels(AndroidExtraModelProvider.kt:39)
	at org.jetbrains.plugins.gradle.model.ProjectImportAction.addBuildModels(ProjectImportAction.java:240)
	at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:127)
	at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:48)
	at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:77)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.runAction(ClientProvidedPhasedActionRunner.java:120)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.run(ClientProvidedPhasedActionRunner.java:110)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.buildFinished(ClientProvidedPhasedActionRunner.java:104)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:382)
	at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:364)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
	at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:352)
	at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:339)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:231)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:150)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:325)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:235)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:141)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at com.sun.proxy.$Proxy16.buildFinished(Unknown Source)
	at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:184)
	at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:127)
	at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:75)
	at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:67)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:189)
	at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
	at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:67)
	at org.gradle.internal.invocation.GradleBuildController.configure(GradleBuildController.java:61)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:62)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:63)
	at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
	at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:51)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:45)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
	at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:80)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
	at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
	at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:60)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:38)
	at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
	at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
	at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
	at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:68)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
	at org.gradle.util.Swapper.swap(Swapper.java:38)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
	at java.lang.Thread.run(Thread.java:748)

I have used classpath 'com.android.tools.build:gradle:4.0.0-beta05' in my build.gradle file and

distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.2-bin.zip

I am following URL:

https://developer.android.com/guide/app-bundle/asset-delivery/build-native-java

and stuck at step number 2.
Please help.

Cannot run espresso tests for single class/method

Thanks for the update googlearchive/android-dynamic-features#32 that includes basic espresso tests for each feature module! I am able to run them by using the corresponding :feature:[name]:connectedAndroidTest gradle task, so our CI concerns are covered.

However, any attempts we've made to setup a run configuration to run a single class, or a single method within a class have been unsuccessful. Previously, and for unit tests, we're able to right click the class or method and run, but it seems this is not supported with dynamic features.

Trying to run a class within a dynamic feature:
Screenshot 2019-05-21 17 44 31

Trying to run a class within the base application module:
Screenshot 2019-05-21 17 45 25

My guess is this is an android studio bug, since running targeted tests works via something like

./gradlew :features:java:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.google.android.samples.dynamicfeatures.ondemand.JavaSampleActivityTest

but if there's a way to get this working I'd love to hear it! Alternatively, if it is a bug, how should we proceed in reporting it so it can get addressed in a future version? Thanks!

Instant App URLs are outdated

The URLs for all instant app samples (hosted on instantappsample.com) are outdated. Can they please be updated so we can test a URL mapped experience?

Request: Dynamic feature module handling native libs

i'm using Dynamic Feature Module for a feature which has third SDK library as .AAR file.
When analysing the apk i found out this sdk is using Native / C++ codes and the structure is like:
Screen Shot 2019-09-18 at 2 43 20 pm

i know that in dynamic module when we want to use native libs we should implement for instance something like :SplitInstallHelper.loadLibrary(this, "tensorflowlite_gpu_gl")
however i'm getting this error:
java.lang.UnsatisfiedLinkError: dlopen failed: library "libtensorflowlite_gpu_gl.so" not found

I'm not sure in Gradle in dynamic module what should i do to be able to load those .so libs?

Disambiguation dialog is shown when opening activity with URI

The project doesn't build in Android Studio version 3.4.1. So I downgraded the gradle version to 3.4.2 (com.android.tools.build:gradle:3.4.2).

Steps to repro

  1. Click REQUEST INSTALL SPLIT INSTALL VIA URL button
  2. An disambiguation dialog is shown with apps of the same package name.

Even tried running the project with Android Studio v3.5 with the project gradle version 'com.android.tools.build:gradle:3.5.0-rc02' the same issue exists.

Looking forward for help. Thanks

Problem with showing notification from dynamic feature

Problem description:
After downloading and installing dynamic module i trying to show notification inside dynamic module. The app crashed even after restart while trying to show notification. For Small Icon resource i use drawable from the same module. But notification not showing and app crash with stackTrace (see attachments). If i use drawable from base module everything works well.

This is sample with current error https://github.com/vadimp56/dynamic-feature-notification-sample

Instruction for reproduction problem:
Install sample app using app-aab.zip (in attachements)
Grant Storage permission for Android 6.0 or above
Unzip app-debug.zip
Push unzipped app-debug folder to device by path /sdcard
Start sample app and click to button FEATURE MODULE NOTIFICATION

app-debug.zip
app-aab.zip

Stacktrace:

android.content.res.Resources$NotFoundException: Resource ID #0x7e030000
        at android.content.res.ResourcesImpl.getValueForDensity(ResourcesImpl.java:246)
        at android.content.res.Resources.getDrawableForDensity(Resources.java:905)
        at android.content.res.Resources.getDrawable(Resources.java:845)
        at android.graphics.drawable.Icon.loadDrawableInner(Icon.java:370)
        at android.graphics.drawable.Icon.loadDrawable(Icon.java:323)
        at android.graphics.drawable.Icon.loadDrawableAsUser(Icon.java:434)
        at com.android.systemui.statusbar.StatusBarIconView.getIcon(StatusBarIconView.java:408)
        at com.android.systemui.statusbar.StatusBarIconView.getIcon(StatusBarIconView.java:392)
        at com.android.systemui.statusbar.StatusBarIconView.updateDrawable(StatusBarIconView.java:370)
        at com.android.systemui.statusbar.StatusBarIconView.set(StatusBarIconView.java:330)
        at com.android.systemui.statusbar.notification.collection.NotificationEntry.createIcons(NotificationEntry.java:347)
        at com.android.systemui.statusbar.notification.collection.NotificationRowBinderImpl.inflateViews(NotificationRowBinderImpl.java:134)
        at com.android.systemui.statusbar.notification.NotificationEntryManager.addNotificationInternal(NotificationEntryManager.java:381)
        at com.android.systemui.statusbar.notification.NotificationEntryManager.addNotification(NotificationEntryManager.java:396)
        at com.google.android.systemui.statusbar.NotificationEntryManagerGoogle.addNotification(NotificationEntryManagerGoogle.java:76)
        at com.android.systemui.statusbar.NotificationListener.lambda$onNotificationPosted$1$NotificationListener(NotificationListener.java:118)
        at com.android.systemui.statusbar.-$$Lambda$NotificationListener$NvFmU0XrVPuc5pizHcri9I0apkw.run(Unknown Source:6)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

Getting error INSUFFICIENT_STORAGE = -10, while installing dynamic feature module for Specific device named Redmi K20 PRO

I have implemented a dynamic feature module. Base module gets installed successfully but when I request for the dynamic module, it gets downloaded but throws error while installing saying INSUFFICIENT_STORAGE = -10 from PlayCore library even though there is a lot of space(more than 18GB). It runs as smooth as butter for all other users.

@Override
public void onStateUpdate(SplitInstallSessionState splitInstallSessionState) {
    long totalModuleSize = splitInstallSessionState.totalBytesToDownload();
    long downloadedBytes = splitInstallSessionState.bytesDownloaded();

    Log.d(TAG, "onStateUpdate() called with: totalModuleSize = [" + totalModuleSize + "]" + "  :   " +
            "+downloadedBytes = [" + downloadedBytes + "]");


    if (splitInstallSessionState.status() == SplitInstallSessionStatus.REQUIRES_USER_CONFIRMATION) {

        try {
            splitInstallManager.startConfirmationDialogForResult(
                    splitInstallSessionState, this, MY_REQUEST_CODE_UGAM);
        } catch (IntentSender.SendIntentException e) {
            Log.e(TAG, "onStateUpdate: IntentSender.SendIntentException : " + e.getMessage());
        }
    } else if (splitInstallSessionState.status() == SplitInstallSessionStatus.INSTALLING) {
        mCustomProgressDialog.setMessage(getString(R.string.installing_dailog_message_base));
        return;
    } else if (splitInstallSessionState.status() == SplitInstallSessionStatus.INSTALLED) {
        if (mCustomProgressDialog != null && mCustomProgressDialog.isShowing()) {
            mCustomProgressDialog.dismiss();
        }
        performLogin();

    } else if (splitInstallSessionState.status() == SplitInstallSessionStatus.FAILED) {
        if (mCustomProgressDialog != null && mCustomProgressDialog.isShowing()) {
            mCustomProgressDialog.dismiss();
        }
        if (splitInstallSessionState.errorCode() == SplitInstallErrorCode.NETWORK_ERROR) {
            showAlertDialogWithOkBtn(getString(R.string.dynamic_module_download_failed_base_network_err));

        } else if (splitInstallSessionState.errorCode() == SplitInstallErrorCode.INSUFFICIENT_STORAGE) { //  this is true in Redmi K20 PRO
            showAlertDialogWithOkBtn(getString(R.string.dynamic_module_download_failed_base_insufficient_storage));

        } else {
            showAlertDialogWithOkBtn(getString(R.string.dynamic_module_download_failed_base) + " (" + splitInstallSessionState.errorCode() + ")");
        }
    }

    if (totalModuleSize == 0) {
        return;
    }
    final int progress = ((int) (((double) downloadedBytes / (double) totalModuleSize) * 100));

    Log.d(TAG, "onStateUpdate: progress : " + progress);
    mCustomProgressDialog.setMessage(getString(R.string.downloading_dialog_message_base) + String.valueOf(progress) + "%");
}

Followup on SplitCompat.installActivity() or SplitCompat.install()

Hi, sorry guys for an attempt to reopen on the recently closed issue (by @keyboardsurfer), by no means I want to be rude or offensive. I have also filled this as a potential bug for Play Core Library, but might be we did some mistake during implementation).

We are using an on-demand dynamic feature module just for the resources (some additional images used in our app.). There is no code at all, only resources. For the implementation, we have followed the tutorial described here. The basic workflow works just fine, the user installs the module, the module gets downloaded and the user can display images from it. We access them via ResourceManager. However, the issue is when the application gets killed. After next start, the module is still installed, which is confirmed through the call of getInstalledModules(). ResourceManager also properly provides IDs of the images, however, once we try to display them, they cannot be loaded with following Error:

No package ID 7e found for ID 0x7e010007.

This happens even though we have tried to call code below in all related activities

 super.attachBaseContext(context);
 SplitCompat.install(this);
 SplitCompat.installActivity(this);

In order to explain it better, I would be happy to connect via some Meets call to show details via commented screen sharing, or even provide the source code - however, issue is that our app is poorly written & documented (at best) and very complex.

So this issue reported by tprochazka (accidentally possibly also Czech guy, which is funny) has struck me because I believe this might be a related problem. Thank you for the support, we really think you guys are doing an incredible job providing us such a wonderful toolset to use in our apps.

crash in some case

1.open java module
2.cant open,just stay in loading page.

after some minutes,crash happen.

09-09 16:55:54.844 23850 23850 E AndroidRuntime: FATAL EXCEPTION: main
09-09 16:55:54.844 23850 23850 E AndroidRuntime: Process: com.google.android.samples.dynamicfeatures.ondemand, PID: 23850
09-09 16:55:54.844 23850 23850 E AndroidRuntime: java.lang.RuntimeException: Error receiving broadcast Intent { act=com.google.android.play.core.splitinstall.receiver.SplitInstallUpdateIntentService flg=0x40200010 pkg=com.google.android.samples.dynamicfeatures.ondemand (has extras) } in com.google.android.play.core.listener.b@9326932
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$-android_app_LoadedApk$ReceiverDispatcher$Args_52226(LoadedApk.java:1329)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at android.app.-$Lambda$FilBqgnXJrN9Mgyks1XHeAxzSTk.$m$0(Unknown Source:4)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at android.app.-$Lambda$FilBqgnXJrN9Mgyks1XHeAxzSTk.run(Unknown Source:0)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:789)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:98)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:164)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:6942)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: Caused by: java.util.UnknownFormatConversionException: Conversion = 'i'
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at java.util.Formatter$FormatSpecifier.conversion(Formatter.java:2781)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:2811)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at java.util.Formatter$FormatSpecifierParser.<init>(Formatter.java:2624)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at java.util.Formatter.parse(Formatter.java:2557)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at java.util.Formatter.format(Formatter.java:2504)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at java.util.Formatter.format(Formatter.java:2458)
09-09 16:55:54.844 23850 23850 E AndroidRuntime: 	at java.lang.String.format(String.java:2814)

[Dynamic feature] Crash when navigate back to fragment

I am using fragment in dynamic feature module.
In fragment have these lines of code:
override fun onAttach(context: Context?) { super.onAttach(context) SplitCompat.install(context) }

Everything works fine. But when i am trying to navigate back to this fragment i am getting ResourceNotFoundException. It looks like my dynamic module wasnt even initialized.

Issue was solved using next lines
override fun onResume() { super.onResume() SplitCompat.install(context) }

What is the proper way to fix it ?

hello-kotlin links are broken, causes Android Studio sample import failure

DESCRIPTION:
hello-kotlin code sample on android studio fails to import from github folder, which appears empty except for a readme with broken links.
STEPS TO REPRODUCE:
-Run Android Studio 3.4
-Select "Import an Android Code Sample"
-Select "Instant Apps - Hello World (Kotlin)"
EXPECTED RESULTS:
Successful import of a "Hello World" Project
OBSERVED RESULTS:
Dialog box appears with the message "Could not find sample root {0} in Git repository"
RELATES TO:
android/android-instant-apps#59

All modules with native libraries must support the same set of ABI but module 'base' supports '[ARM64_V8A, ARMEABI_V7A, X86, X86_64]' and module 'trace_module' supports '[ARM64_V8A, ARMEABI_V7A, ARMEABI, MIPS, MIPS64, X86, X86_64]'.

I am not able to generate .aab build. I am getting this error-
All modules with native libraries must support the same set of ABIs, but module 'base' supports '[ARM64_V8A, ARMEABI_V7A, X86, X86_64]' and module 'trace_module' supports '[ARM64_V8A, ARMEABI_V7A, ARMEABI, MIPS, MIPS64, X86, X86_64]'.

Not wotking assembleRelease on DynamicFeatures

I found one very weird error, I spent several hours on it and I don't understand if it is just a lint error or something in the project.

I tried to build demo DynamicFeatures with assembleRelease, it just needs to add this to app/build.gradle

    signingConfigs {
        release {
            storeFile ...
            keyAlias ...
            storePassword ...
            keyPassword ...
        }
    }

and run assembleRelease and it always fail with

> Task :features:java:lintVitalRelease
C:\PJazyky\_Experiments\app-bundle-samples-master\DynamicFeatures\features\java\src\main\AndroidManifest.xml:31: Error: JavaSampleActivity must extend android.app.Activity [Instantiatable]
        <activity android:name="com.google.android.samples.dynamicfeatures.ondemand.JavaSampleActivity">
                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   Explanation for issues of type "Instantiatable":
   Activities, services, broadcast receivers etc. registered in the manifest
   file (or for custom views, in a layout file) must be "instantiatable" by
   the system, which means that the class must be public, it must have an
   empty public constructor, and if it's an inner class, it must be a static
   inner class.

1 errors, 0 warnings

I'm sure that all activities extend android.app.Activity.
And its event works correctly for assembleDebug.
I also tried to change minifyEnabled to false on release build and it still happens.
Should I report it as lint check error or I miss something?

Multi-Feature-Module can't run

I open up the Multi-Feature-Module code in this repo, in Android Studio 3.4.
Upon opening, the only configuration available is app, and it is error out stating Error running 'app': Default Activity not found

I check the AndroidManifest.xml within the app module, indeed it is

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:dist="http://schemas.android.com/apk/distribution"
          package="com.example.android.unsplash">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <dist:module dist:instant="true" />
    <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/App">
    </application>
</manifest>

No Launching Activity. No wonder it errors out. Did I miss something?

SplitInstallInfoProvider : No metadata found in AndroidManifest

While creating dynamic on demand module, I'm getting this error when SplitInstallManager starts downloading this module
I/PlayCore: UID: [10488] PID: [31266] SplitInstallInfoProvider : No metadata found in AndroidManifest. I/PlayCore: UID: [10488] PID: [31266] SplitInstallService : startInstall([AadharModule],[]) I/PlayCore: UID: [10488] PID: [31266] SplitInstallService : Initiate binding to the service. I/PlayCore: UID: [10488] PID: [31266] SplitInstallService : ServiceConnectionImpl.onServiceConnected(ComponentInfo{com.android.vending/com.google.android.finsky.splitinstallservice.SplitInstallService}) I/PlayCore: UID: [10488] PID: [31266] SplitInstallService : linkToDeath I/PlayCore: UID: [10488] PID: [31266] SplitInstallService : Unbind from service. I/PlayCore: UID: [10488] PID: [31266] SplitInstallService : onError(-5)

Instrumentation tests fail when navigating to dynamic feature

Hey!

I have a problem when trying to write a test that performs a navigation action into an activity hosted in a dynamic feature module.

This navigation fails when executed through the gradle task, e.g the task connectedAndroidTest fails, while running with the adb shell command
adb shell am instrument -w -r com.google.android.samples.dynamicfeatures.ondemand.test/androidx.test.runner.AndroidJUnitRunner succeeds.

I modified a little bit the code to perform the navigation inside a dynamic feature when clicking a button in the main activity. Here is the code I am using:

    private fun intentTo(className: String): Intent =
            Intent(Intent.ACTION_VIEW).setClassName(BuildConfig.APPLICATION_ID, className)

    private fun String.loadIntentOrNull(): Intent? =
            try {
                Class.forName(this).run { intentTo(this@loadIntentOrNull) }
            } catch (e: ClassNotFoundException) {
                null
            }

    private val clickListener by lazy {
        View.OnClickListener {
            when (it.id) {
                R.id.btn_load_kotlin -> {
                    val intent = KOTLIN_SAMPLE_CLASSNAME.loadIntentOrNull()
                    startActivity(intent)
                }
                R.id.btn_load_java -> loadAndLaunchModule(moduleJava)
                R.id.btn_load_assets -> loadAndLaunchModule(moduleAssets)
                R.id.btn_load_native -> loadAndLaunchModule(moduleNative)
                R.id.btn_install_all_now -> installAllFeaturesNow()
                R.id.btn_install_all_deferred -> installAllFeaturesDeferred()
                R.id.btn_request_uninstall -> requestUninstall()
                R.id.btn_instant_dynamic_feature_split_install -> loadAndLaunchModule(instantModule)
                R.id.btn_instant_dynamic_feature_url_load -> openUrl(instantModuleUrl)
                R.id.lang_en -> loadAndSwitchLanguage(LANG_EN)
                R.id.lang_pl -> loadAndSwitchLanguage(LANG_PL)
            }
        }
    }

When executing the app, it is able to navigate without problems but the instrumentation tests aren't, because the intent is null since it appears it cannot find the activity. Here is the test:

    @Test
    fun launchMainActivity() {
        onView(withId(R.id.btn_load_kotlin)).perform(ViewActions.click())
    }

I am interested in the test results reports that are only generated with the gradle task and not through the adb shell command.

Thank you in advance! :)

Instrumentation tests can't find install-time feature modules.

I'm trying to set up some basic espresso tests in my app that uses dynamic feature modules. Both my feature modules are install-time and they show up and are able to be accessed via reflection when i run my app on device/on emulator. But as soon as I try to run in either a unit test or instrumentation test, SplitInstallManager shows there are no modules installed!

Am I missing something with regards to how dynamic features are treated during tests?

The command I'm using is
./gradlew connectedAndroidTest --no-parallel

Please add example for PlayAssetDelivery java

I was trying to implement Play Asset Delivery for java from here. But then there were 2 problems with that:

  1. Step number 9 here didn't work for me. ( I am using classpath 'com.android.tools.build:gradle:4.0.0-rc01' and distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.2-bin.zip in my project)
  2. There was no error due to step1 but when I tried to get the asset from AssetManager it was throwing exception java.io.FileNotFoundException: asset1.mp4.
    Please add code for reference.

Dynamic features with Navigation component

I know this might be a little outside of the scope for this sample, but I was wondering if there are any plans to integrate the navigation component in a way to showcase the recommended practices with dynamic features.

I've seen the other googlesamples repos and there is no demo available.

I've asked on SO but doesn't seem to be a lot of interest in the community, at least not for now :).

Thanks ๐Ÿ™


P.S: Sorry if this shouldn't be an issue but I really didn't find any other place to request where it made sense.

Network error doesn't triggered in downloading session

Steps:

  1. Put large file in assets folder;
  2. Build and upload to store;
  3. Install and run application;
  4. Start load dynamic feature "assets";
  5. Disable WiFi
  6. No errors or new states, application hangs...

Expected behavior: SplitInstallErrorCode.NETWORK_ERROR

Custom View cannot preview on Android Studio 3.4.2

I create custom view and use LayoutInflater but Android Studio cannot preview my custom view when use it on fragment or activity
basically it work fine while running on device or emulator just preview issue

class FraudWarningBox : ConstraintLayout {
    constructor(context: Context?) : this(context, null)
    constructor(context: Context?, attrs: AttributeSet?) : this(context, attrs, 0)
    constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
        val view = LayoutInflater.from(context).inflate(R.layout.view_fraud_warning_box, this, false)
        addView(view)
    }
}
android.content.res.Resources$NotFoundException: Could not resolve resource value: 0x7D030002. Or the resolved value was not of type layout as expected.
	at android.content.res.Resources_Delegate.throwException(Resources_Delegate.java:1145)
	at android.content.res.Resources_Delegate.throwException(Resources_Delegate.java:1121)
	at android.content.res.Resources_Delegate.getLayout(Resources_Delegate.java:497)
	at android.content.res.Resources.getLayout(Resources.java:1155)
	at android.view.LayoutInflater.inflate(LayoutInflater.java:421)
	at com.app.kaidee.addetail.uicomponent.FraudWarningBox.<init>(FraudWarningBox.kt:15)
	at com.app.kaidee.addetail.uicomponent.FraudWarningBox.<init>(FraudWarningBox.kt:13)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:403)
	at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:186)
	at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:144)
	at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:309)
	at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:418)
	at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:429)
	at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:333)
	at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
	at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:863)
	at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
	at android.view.LayoutInflater.rInflate(LayoutInflater.java:837)
	at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
	at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
	at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
	at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:326)
	at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:391)
	at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:195)
	at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:540)
	at com.android.tools.idea.rendering.RenderTask.lambda$inflate$5(RenderTask.java:666)
	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

Incorrect error code on "insufficient free space"

Steps:

  1. Start download feature module
  2. Receive: SplitInstallErrorCode.INTERNAL_ERROR (-100)
  3. Open logcat:
    08-16 13:17:29.389 E/Finsky (20334): [1] los.e(15): Cancel download of com.absolutist.hiddennumbers because insufficient free space (isid: LCwZoutOTlCETB8_M0jhrQ)
    So, incorrect error.
    Expeced error code: SplitInstallErrorCode.INSUFFICIENT_STORAGE

ERROR: Build failed with exception when execute lint

Description

Execute the following command ./gradlew lint for analysing code cause the following error
Starting a Gradle Daemon (subsequent builds will be faster)

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':features:assets:lint'.
> kotlin.collections.EmptyIterator cannot be cast to kotlin.collections.MutableIterator

* 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 9s

Steps to reproduce

  1. Open terminal with project root path
  2. Execute the following command ./gradlew lint (on mac or linux) gradlew lint (on windows)

unresolved depedency

ERROR: Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :features:kotlin.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :features:java.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :features:native.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :features:assets.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve project :features:kotlin.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve project :features:java.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve project :features:native.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve project :features:assets.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve project :features:kotlin.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve project :features:java.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve project :features:native.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve project :features:assets.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve project :features:kotlin.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve project :features:java.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve project :features:native.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve project :features:assets.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve project :features:kotlin.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve project :features:java.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve project :features:native.
Show Details
Affected Modules: app

ERROR: Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve project :features:assets.
Show Details
Affected Modules: app

Please help me to resolve this issue.

Showcase APK fusing in the sample

Given that Splits have been introduced in API Level 21, when Play delivers an Android App Bundle to a device running KitKat or older OS it implements APK Fusing as explained at step 6.c. of the dynamic features module docs.

Would be helpful to show in this sample how to gracefully allow an application, using dynamic features module, to target API Level 19 and lower using the fusing directive:

<dist:module
    ...
    <dist:fusing dist:include="true" />
</dist:module>

Dynamic feature Update size is more the install Size

I have upload bundle with Dynamic feature, We are facing a size issue when we are going to update the app from the play store it shows more size but if we will go install apk from play store it shows less size from the update size.

Crashes: Firebase Service on feature module

I used FirebaseMessagingService on the feature module
When build with debug version working normally, but publish on the Play Store, the open app has crashed
java.lang.RuntimeException: Unable to instantiate service com.example.MessageService: java.lang.ClassNotFoundException: Didn't find class
Target SDK: 28
Crashed on the device: Google Pixel
Please support me !!!

Resource Not Found Exception only in Marshmallow 6.0.1

Hi,

I followed dynamic delivery sample https://codelabs.developers.google.com/codelabs/on-demand-dynamic-delivery/index.html#0.

i uploaded to internal test and after i installed it successfully launch the app, download the dynamic module, after dynamic module is downloaded when i click to open it crash says Resource Not Found exception, then i just modify the version code and re uploaded the aab file without changing anything in functionality. and updated the app and it works! i dont know what causes for the first time when module downloaded successfully. it happened only in Marshmallow 6.0.1 custom rom, i use custom rom because i have to use dynamic delivery feature in my app. can someone please help me out.

Same app is working fine on Pie on first time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.