Giter Club home page Giter Club logo

h-mdm / hmdm-android Goto Github PK

View Code? Open in Web Editor NEW
165.0 17.0 83.0 4.31 MB

Mobile Device Management (MDM) System for Android (mobile agent - launcher). Used for silent app installation and sending the info to the server. See more info on the website!

Home Page: https://h-mdm.com

License: Apache License 2.0

Java 99.71% AIDL 0.29%
mdm mobile-device-management device-management android-management launcher android-launcher silent-install silent-update android

hmdm-android's Introduction

Headwind MDM: free and open-source MDM launcher

A Powerful Open Source Platform to Manage your Enterprise Android Devices

Get it on F-Droid

Starting work

Open the project directory in Android Studio (use default settings).

Debugging on the device

  1. Connect the device by USB

  2. Click "Run 'App'" icon in Android Studio

  3. After successful run, add device owner rights to the app (optional).

    Run in the console

    adb shell

    Run the command in the adb console

    dpm set-device-owner com.hmdm.launcher/.AdminReceiver

Building the APK

Build the APK after you successfully build the app.

  1. Setup the keys for signing the app
  2. Select Build - Generate signed Bundle / APK
  3. Select the place you'd like to save APK

Building the library

  1. Select the 'lib' item in the project tree
  2. Select Build - Make Module 'lib'
  3. Find the library in the 'lib/build/outputs/aar' directory

Building the project in the command line

  1. Install the Gradle plugin v5.1.1 (Linux only)
  2. Install Android Studio or download the standalone Android SDK
  3. Create the file local.properties and store the SDK location in this file:

sdk.dir=/path/to/sdk

  1. Run the command

gradlew build

  1. Find the resulting APK in the app/build/outputs/apk/release/ directory.

hmdm-android's People

Contributors

eretl avatar fishbowler avatar h-mdm avatar loisspitz avatar m-pastuszek-leo avatar poussinou avatar vmayorow 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

hmdm-android's Issues

Location access in Android 12

After switching from Android 11 to 12 (LineageOS 19.1), every time I go back to the home screen, I get the message "Location access is possible"
Android12_LocationMessage

Is there any way to disable this message in the community edition? The update to Android version 5.04 unfortunately did not change anything.

Thank you for the very good software!

Origin of MQTT credentials unknown

Version 5.18 is having problems connecting to the integrated MQTT server.
Debugging the connection showed the used password is unknown. I do not know where the used value would come from, especially not from looking at the code.

log

org.apache.activemq.broker.TransportConnection : Failed to add Connection id=ID:server-42919-1684767127952-3:23, clientId=IMEI due to java.lang.SecurityException: User name [hmdm] or password is invalid.
org.apache.activemq.broker.TransportConnection.Service : Security Error occurred on connection to: tcp://1.2.3.4:47292, User name [hmdm] or password is invalid.
org.apache.activemq.broker.TransportConnection.Transport : Transport Connection to: tcp://1.2.3.4:47292 failed: java.io.IOException: User name [hmdm] or password is invalid.
org.apache.activemq.broker.TransportConnection : Stopping tcp://1.2.3.4:47292 because Failed with SecurityException: User name [hmdm] or password is invalid.

The used password has 40 chars, starting with E151DB...

Hard Reset Stop

Is this possible User cannot hard reset device?
or
When User hard reset his device then Without enter email and password user not setup device.

[Feature Request] Alphabetical Ordering (Or other Sorting Options) of Icons in the Launcher

We have a community project using a bunch of Tablets that are provided to our users, in a Pre-Configured & Managed way, of course using Headwind MDM.

I have a "Configuration" on the Headwind MDM-Server that has ~30 Icons (so far, and growing).

We need a way to sort the Icons in the launcher, even if it is just Alphabetical, then at least using some creative naming
we can at least Group icons in sets.

Better still would be an option to create a "Folder" for Icons that should be grouped!
Then I can have a Folder called "Suggested Apps" with a bunch of "URL Applications" pointing to "market://details?id=XXXXXX"
another Folder called "Games" and other called "SIM Dashboards" and so on.
(But I assume this would need some additional integration with the Headwind MDM-Server)

Screenshot from 2021-07-28 21-38-35

PushMessages as type runApp: action not working

I am unable to start an App with a specific action. Can someone test this on their end to see if it maybe is a launcher problem?
The action should start a basic activity displaying a Text. I can switch to it using a button on my MainActivity.

In AndroidManifest.xml this is declared:

    <activity
        android:name="my.test.project.SecondActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="my.test.project.DOACTION" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

When sending a push message from the Web-UI/Control Panel of type runApp with the payload
{"pkg": "my.test.project", "action": "my.test.project.DOACTION"}
it starts the app, but not the action / second activity.

Headwind MDM Control panel Version: 5.11.3
Agent-Launcher Version: 5.12

MDM update/flow issue

Hello,

We have complied your source code and run it on android device and In admin portal I have applied changes but those changes does not reflected on app side.

  1. I want to block app and setting from outside MDM agent which flow do I need to follow?
  2. Whatever changes is applied on admin portal how I check in app side does it automatically applies or do I need to be update MDM agent?
  3. Not able to update MDM agent? due to conflicts with an existing packages?

package conflict issue

Hello Suppprt team,
Screenshot 2024-02-22 at 12 48 55 PM

i have checked the demo but unable to control device using web portal
https://app.h-mdm.com/#/login

i have try camera lock but it is not working in application side.

when i am update app getting the alert conflict package please check screen shot

IMEI is not replaced with value in templates

createFileFromTemplate (line 1010, ConfigUpdater.java) indicates that it will replace text values of IMEI in the template file but it only replaces values of DEVICE_ID, CUSTOM1, CUSTOM2, CUSTOM3. Same issue in MainAcivity.java.

Silent App Install not working properly, only installing one app then stops.

The problem seems to be related to not being able to receive the app installed succesfully Intent, caused by Error BroadcastReceiver components are not allowed to register to receive intents. This is on an Android 11 AOSP device.

2022-08-25 15:52:18.531 2093-2093/com.hmdm.launcher W/System.err: android.content.ReceiverCallNotAllowedException: BroadcastReceiver components are not allowed to register to receive intents
2022-08-25 15:52:18.531 2093-2093/com.hmdm.launcher W/System.err: at android.app.ReceiverRestrictedContext.registerReceiver(ContextImpl.java:132)
2022-08-25 15:52:18.531 2093-2093/com.hmdm.launcher W/System.err: at android.app.ReceiverRestrictedContext.registerReceiver(ContextImpl.java:121)
2022-08-25 15:52:18.531 2093-2093/com.hmdm.launcher W/System.err: at com.hmdm.launcher.helper.ConfigUpdater.registerAppInstallReceiver(ConfigUpdater.java:921)
2022-08-25 15:52:18.531 2093-2093/com.hmdm.launcher W/System.err: at com.hmdm.launcher.helper.ConfigUpdater.checkAndUpdateApplications(ConfigUpdater.java:596)
2022-08-25 15:52:18.531 2093-2093/com.hmdm.launcher W/System.err: at com.hmdm.launcher.helper.ConfigUpdater.loadAndInstallFiles(ConfigUpdater.java:575)
2022-08-25 15:52:18.532 2093-2093/com.hmdm.launcher W/System.err: at com.hmdm.launcher.helper.ConfigUpdater.access$1500(ConfigUpdater.java:55)
2022-08-25 15:52:18.532 2093-2093/com.hmdm.launcher W/System.err: at com.hmdm.launcher.helper.ConfigUpdater$8.onPostExecute(ConfigUpdater.java:442)
2022-08-25 15:52:18.532 2093-2093/com.hmdm.launcher W/System.err: at com.hmdm.launcher.helper.ConfigUpdater$8.onPostExecute(ConfigUpdater.java:431)
2022-08-25 15:52:18.532 2093-2093/com.hmdm.launcher W/System.err: at android.os.AsyncTask.finish(AsyncTask.java:771)
2022-08-25 15:52:18.532 2093-2093/com.hmdm.launcher W/System.err: at android.os.AsyncTask.access$900(AsyncTask.java:199)
2022-08-25 15:52:18.532 2093-2093/com.hmdm.launcher W/System.err: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
2022-08-25 15:52:18.532 2093-2093/com.hmdm.launcher W/System.err: at android.os.Handler.dispatchMessage(Handler.java:106)
2022-08-25 15:52:18.533 2093-2093/com.hmdm.launcher W/System.err: at android.os.Looper.loop(Looper.java:223)
2022-08-25 15:52:18.533 2093-2093/com.hmdm.launcher W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7656)
2022-08-25 15:52:18.533 2093-2093/com.hmdm.launcher W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2022-08-25 15:52:18.534 2093-2093/com.hmdm.launcher W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
2022-08-25 15:52:18.534 2093-2093/com.hmdm.launcher W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

[FEATURE_REQUEST] Notification Badges Count.

As we were evaluating android client hmdm launcher, we couldn't see notification badges count on our apps just like other launcher apps catches incoming notifications and show the count on app icons.

Kiosk mode

Me pueden proporcionar una guía de como funciona y que hace ese modo?

[Feature Request] Dont hide the apps when launch on boot

If i have an app that i want to be launched and viewed at start, it shouldn't be hidden so the users need to click the icon every time.
Would be super with a setting on the application
[Boot on launch] = yes
[Keep in foreground] = yes

Not able to create user profiles [Background (Agent) Mode]

Hello, I am using a custom ROM and headwind MDM, and whenever I try to create User profile when headwind MDM is added in the ROM I just can't create a profile, Add profile button just does not show.. and if I remove the app then I can create and manage the user profiles.

I need some clarification on this one, any help is greatly appreciated

Regards.
A.

No silent app install

Hello!

I'm trying to use H-MDM with Urovo DT40 device. Devices we have does not have Google services in firmware, so there is no setup wizard. I installed launcher manually and everything worked fine except that every app installation requires user confirmation.
Is there any way to fix it?

Doesn't build on a clean `git pull`

I've cloned the repository and attempted to build it using Android Studio 2021.2.1 Patch 1
When attempting to build it throws the following error:

Execution failed for task ':app:compileDebugJavaWithJavac'.
> javax/xml/bind/JAXBException

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

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDebugJavaWithJavac'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:95)
	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
	at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
	at org.gradle.api.internal.tasks.compile.AnnotationProcessingCompileTask.instantiateProcessor(AnnotationProcessingCompileTask.java:143)
	at org.gradle.api.internal.tasks.compile.AnnotationProcessingCompileTask.setupProcessors(AnnotationProcessingCompileTask.java:105)
	at org.gradle.api.internal.tasks.compile.AnnotationProcessingCompileTask.call(AnnotationProcessingCompileTask.java:90)
	at org.gradle.api.internal.tasks.compile.ResourceCleaningCompilationTask.call(ResourceCleaningCompilationTask.java:57)
	at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)
	at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:36)
	at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:100)
	at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)
	at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)
	at org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:51)
	at org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:37)
	at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:39)
	at org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilerFactory$2.execute(IncrementalCompilerFactory.java:110)
	at org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilerFactory$2.execute(IncrementalCompilerFactory.java:106)
	at org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:59)
	at org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:43)
	at org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$2.call(CompileJavaBuildOperationReportingCompiler.java:59)
	at org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$2.call(CompileJavaBuildOperationReportingCompiler.java:51)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler.execute(CompileJavaBuildOperationReportingCompiler.java:51)
	at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:154)
	at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:122)
	at com.android.build.gradle.tasks.AndroidJavaCompile.compile(AndroidJavaCompile.kt:214)
	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:73)
	at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:47)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:284)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:273)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:258)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:67)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:145)
	at org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:49)
	at org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
	at org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
	at org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
	at org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:33)
	at org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
	at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:43)
	at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:29)
	at org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:134)
	at org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$3(CacheStep.java:83)
	at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
	at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:36)
	at org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
	at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
	at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
	at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
	at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
	at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
	at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
	at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:91)
	... 32 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
	... 97 more

I'm struggling to find a solution for this.
Any ideas?

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.