AndroidIDE - an IDE for Android to develop full featured Android apps on Android smartphones.

Overview

Minimum SDK CI Build Status GPL v3 License Join us on Telegram


Features

  • Gradle support.
  • JDK 11 and JDK 17 available for use.
  • Terminal with necessary packages.
  • Custom environment variables (for Build & Terminal).
  • SDK Manager (Available via terminal).
  • API information for classes and their members (since, removed, deprecated).
  • Language servers
    • Java
    • XML (*)
    • Kotlin
  • UI Designer
    • Layout inflater
    • Resolve resource references
    • Auto-complete resource values when user edits attributes using the attribute editor
    • Drag & Drop (*)
    • Visual attribute editor (*)
    • Android Widgets (*)
  • String Translator
  • Asset Studio (Drawable & Icon Maker)
  • Git (*)

Items marked with (*) are partially implemented. XML language server supports only code completion at the moment. Git is currently available only in the terminal i.e. no GUI interface for git.

Limitations

  • Gradle Wrapper is supported. But, it requires that the project's application module is named 'app'.
  • SDK Manager is already included in Android SDK and is accessible in AndroidIDE via its Terminal. But, you cannot use it to install some tools (like NDK) because those tools are not built for Android.
  • No official NDK support because we haven't built the NDK for Android.

The app is still being developed actively. It's in beta stage and may not be stable. if you have any issues using the app, please let us know.

Contributing

See the contributing guide.

Thanks to

And all the developers who have contributed to this project.

Contact Us

License

AndroidIDE is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

AndroidIDE is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with AndroidIDE.  If not, see .

Any violations to the license can be reported either by opening an issue or writing a mail to us directly.

Comments
  • [FEATURE]: Godot - Bridge the gap

    [FEATURE]: Godot - Bridge the gap

    Is your feature request related to a problem? Please describe. It's now possible to create games with Godot inside Android, support APK exporting

    Describe the solution you'd like Use AndroidIDE's SDK to deploy APKs from Godot editor

    Describe alternatives you've considered None yet

    Additional context Since Godot editor now runs on Android (https://downloads.tuxfamily.org/godotengine/3.5/beta3/), and Android deployment needs a valid SDK, maybe you can consider supporting AndroidIDE (https://github.com/itsaky/AndroidIDE - https://androidide.com/) which provides a minimal Android SDK, to compile Android projects, inside Android!!! =)

    Also see here (https://github.com/godotengine/godot-proposals/discussions/4324)

    Cheers =)

    feature 
    opened by anonimo82 33
  • Add new Login Activity project template with Java and Kotlin support

    Add new Login Activity project template with Java and Kotlin support

    This is a basic login screen template, which contains a file called LoginActivity where is an activity that will have the login layout, also implement some empty functions for the user can implement in the login system, the functions are:

    • Login
    • Register
    • isSaveLogin

    These functions are empty, they are only created in code.Here are some pictures of what the model looks like:

    login_activity_screen_1 login_activity_screen_2

    When the Login Screen button is pressed, the user is redirected to the login screen, where the programmer (user) can edit and do whatever he wants.

    opened by MatheusTGamerPro 17
  • NobLinger Able to Build LibGDX Examples or Projects

    NobLinger Able to Build LibGDX Examples or Projects

    Describe the bug Nothing happens!

    To Reproduce Steps to reproduce the behavior: Just load the default LibGDX skeleton.

    IDE Log (All other logs are empty):

    GradleBuildService        I   Showing notification to user... 
    EditorActivity            I   Gradle build service has been started... 
    FileTreeFragment          E   Unable to restore tree state  treeState=null  [email protected] 
    GradleBuildService        I   Starting tooling API server... 
    FileTreeFragment          E   Unable to restore tree state  treeState=null  [email protected] 
    GradleBuildService        E   Unable to start tooling API server 
    GradleBuildService        E  java.io.IOException: error=2, No such file or directory
    GradleBuildService        E  	at java.lang.UNIXProcess.forkAndExec(Native Method)
    GradleBuildService        E  	at java.lang.UNIXProcess.<init>(UNIXProcess.java:133)
    GradleBuildService        E  	at java.lang.ProcessImpl.start(ProcessImpl.java:141)
    GradleBuildService        E  	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    GradleBuildService        E   Caused by: java.io.IOException: Cannot run program "/data/data/com.itsaky.androidide/files/usr/opt/openjdk/bin/java" (in directory "/data/data/com.itsaky.androidide/files/home"): error=2, No such file or directory
    GradleBuildService        E  	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050)
    GradleBuildService        E  	at com.itsaky.androidide.shell.CommonProcessExecutor.newProcess(CommonProcessExecutor.java:85)
    GradleBuildService        E  	at com.itsaky.androidide.shell.CommonProcessExecutor.newProcess(CommonProcessExecutor.java:74)
    GradleBuildService        E  	at com.itsaky.androidide.shell.CommonProcessExecutor.execAsync(CommonProcessExecutor.java:65)
    GradleBuildService        E  	at com.itsaky.androidide.shell.CommonProcessExecutor.execAsync(CommonProcessExecutor.java:54)
    GradleBuildService        E  	at com.itsaky.androidide.services.GradleBuildService$ToolingServerRunner.run(GradleBuildService.java:473)
    GradleBuildService        E  	at java.lang.Thread.run(Thread.java:923)
    GradleBuildService        E  
    GradleBuildService        E  
    FileTreeFragment          E   Unable to restore tree state  treeState=  [email protected]
    
    question 
    opened by Trasd 14
  • Inconsistent auto completion

    Inconsistent auto completion

    The auto completion is kind of iffy. Sometimes it shows sometimes it doesn't. Looking at the ide messages, I see that it isn't always able to process the classpath and ends up just being able to recognize only keywords and local variables.

    A lot of the times, it even shows nothing. With each letter we enter, the idelogs view spits out:

    JavaAutoComplete: Completion error java.io.IOException: Stream closed
        at java.lang.ProcessBuilder$NullOutputStream.write(ProcessBuilder.java:433)
        at java.io.OutputStream.write(OutputStream.java:116)
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
        at java.io.BufferedOutputStream.write(BufferedOutputStream.java:126)
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
        at org.eclipse.lsp4j.jsonrpc.json.StreamMessageConsumer.consume(StreamMessageConsumer.java:69)
     Caused by: org.eclipse.lsp4j.jsonrpc.JsonRpcException: java.io.IOException: Stream closed
        at org.eclipse.lsp4j.jsonrpc.json.StreamMessageConsumer.consume(StreamMessageConsumer.java:72)
        at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.request(RemoteEndpoint.java:161)
        at org.eclipse.lsp4j.jsonrpc.services.EndpointProxy.invoke(EndpointProxy.java:91)
        at java.lang.reflect.Proxy.invoke(Proxy.java:913)
        at $Proxy5.completion(Unknown Source)
        at com.itsaky.androidide.language.java.JavaAutoComplete.getAutoCompleteItems(JavaAutoComplete.java:52)
     Caused by: java.util.concurrent.ExecutionException: org.eclipse.lsp4j.jsonrpc.JsonRpcException: java.io.IOException: Stream closed
        at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:359)
        at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1921)
        at com.itsaky.androidide.language.java.JavaAutoComplete.getAutoCompleteItems(JavaAutoComplete.java:60)
        at io.github.rosemoe.editor.widget.EditorAutoCompleteWindow$MatchThread.run(EditorAutoCompleteWindow.java:350)
    
    improvement 
    opened by dhaigit 14
  • App freezes on tapping 'View' button multiple times

    App freezes on tapping 'View' button multiple times

    I'm going to try to describe the first issue from my other post #33 here.

    LG, Android 8.0

    I can make the app freeze on purpose with 100% certainty.

    • Open a project
    • Doesn't seem to matter if gradle daemon is running or not, or app is done compiling/building or not -Tap red button on bottom right corner to show a menu (1st time) -Tap phone's back button or tap outside of menu to close menu (1st time) -Tap red button again to show menu (2nd time) -Tap phone's back button or tap outside of menu to close menu (2nd time) -Tap red button again to show menu (3rd time) -Tap phone's back button or tap outside of menu to close menu (3rd time) -App freezes, and most of the time, whole phone is now not responsive for a few seconds

    I tap phone's running app list button and swipe off AndroidIDE. I repeat the process dozens of times with the exact result.

    There's another interesting detail. If I tap on the phone's running app list button in the middle of the process before it freezes (after 1st or 2nd time), and tap AndroidIDE from the list to go back to it, I'm allowed to toggle the red button 2 more times.

    So, the pause-then-resuming of the app seems to reset the red button's toggle-count-before-freeze status.

    bug 
    opened by dhaigit 12
  • armv7a (arm32) support?

    armv7a (arm32) support?

    Why don't you guys build it supporting arm32 archs? Mine device is arm32, and I've to use Termux (its openjdk-17, gradle packages) and Build-Tools (like aapt2) from https://github.com/Lzhiyong/sdk-tools, and the code editor is Acode. Its very hard to build apps like this. If you had built the IDE for arm32 also, it would be very helpful for me.

    improvement 
    opened by ghost 12
  • Can't access $PREFIX/etc/apt/sources.list

    Can't access $PREFIX/etc/apt/sources.list

    https://user-images.githubusercontent.com/61679493/179146497-6cbd93cb-9d5f-487c-b207-5e8fac4d7b14.mp4

    Android 12 Origin OS Other than that I can't change the source

    opened by BasicGearwheel 11
  • [Bug]:  Error in Project initialisation, Cannot develop app in ide.

    [Bug]: Error in Project initialisation, Cannot develop app in ide.

    What happened?

    When i am writing in my XML ide crash randomly and then I restart it project initialisation error occurred. Here is build-output.txt Help i cannot develop my app further. Because this error happened.

    What's the expected behavior?

    No error should occur.

    What version of AndroidIDE you're using?

    v2.1.2 (debug builds)

    Relevant log output

    Starting build...
     Creating Idea project model... 
     IdeaProject model created... 
     Project MyApp is not an AndroidProject 
     Fetching Android project model... 
     Building AndroidModule for project: app 
     Fetching 'debug' dependencies 
     Building IdeGradleProject model for project: :app 
    java.lang.IllegalArgumentException: Cannot convert string value 'NO_ARTIFACT_FILE' to an enum value of type 'com.android.builder.model.v2.ide.LibraryType' (valid case insensitive values: PROJECT, ANDROID_LIBRARY, JAVA_LIBRARY, RELOCATED)
    	at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter.toEnum(ProtocolToModelAdapter.java:204)
    	at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter.adaptToEnum(ProtocolToModelAdapter.java:177)
    	at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter.createView(ProtocolToModelAdapter.java:146)
    	at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter.convert(ProtocolToModelAdapter.java:276)
    	at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter.access$1500(ProtocolToModelAdapter.java:56)
    	at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$AdaptingMethodInvoker.invoke(ProtocolToModelAdapter.java:477)
    	at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$PropertyCachingMethodInvoker.invoke(ProtocolToModelAdapter.java:705)
    	at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$SafeMethodInvoker.invoke(ProtocolToModelAdapter.java:742)
    	at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$SupportedPropertyInvoker.invoke(ProtocolToModelAdapter.java:766)
    	at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$InvocationHandlerImpl.invoke(ProtocolToModelAdapter.java:432)
    	at jdk.proxy6/jdk.proxy6.$Proxy169.getType(Unknown Source)
    	at com.itsaky.androidide.tooling.api.model.util.AndroidModulePropertyCopier.copy(AndroidModulePropertyCopier.kt:353)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.getLibrary(ProjectReader.java:322)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.getLibrary(ProjectReader.java:324)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.getLibrary(ProjectReader.java:324)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.getLibrary(ProjectReader.java:324)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.getLibrary(ProjectReader.java:324)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.getLibrary(ProjectReader.java:324)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.getLibrary(ProjectReader.java:324)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.getAllCompileDependencies(ProjectReader.java:302)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.createAndroidModelInfo(ProjectReader.java:275)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.buildModuleProject(ProjectReader.java:207)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.buildModuleProject(ProjectReader.java:194)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.addModules(ProjectReader.java:537)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.buildGradleProjectModel(ProjectReader.java:520)
    	at com.itsaky.androidide.tooling.impl.util.ProjectReader.lambda$read$cd991923$1(ProjectReader.java:95)
    	at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:64)
    	at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionAdapter.runAction(AbstractClientProvidedBuildActionRunner.java:131)
    	at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionAdapter.fromBuildModel(AbstractClientProvidedBuildActionRunner.java:104)
    	at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionAdapter.fromBuildModel(AbstractClientProvidedBuildActionRunner.java:84)
    	at org.gradle.internal.buildtree.DefaultBuildTreeModelCreator.fromBuildModel(DefaultBuildTreeModelCreator.java:57)
    	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$fromBuildModel$1(DefaultBuildTreeLifecycleController.java:82)
    	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$runBuild$4(DefaultBuildTreeLifecycleController.java:106)
    	at org.gradle.internal.model.StateTransitionController.lambda$transition$5(StateTransitionController.java:166)
    	at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247)
    	at org.gradle.internal.model.StateTransitionController.lambda$transition$6(StateTransitionController.java:166)
    	at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
    	at org.gradle.internal.model.StateTransitionController.transition(StateTransitionController.java:166)
    	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:103)
    	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.fromBuildModel(DefaultBuildTreeLifecycleController.java:74)
    at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner.runClientAction(AbstractClientProvidedBuildActionRunner.java:43)
    	at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:48)
    	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    	at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:49)
    	at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:65)
    	at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:136)
    	at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
    	at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:40)
    	at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:122)
    	at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40)
    	at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40)
    	at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:65)
    	at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53)
    	at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:65)
    	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:61)
    	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:57)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:57)
    	at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:36)
    	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)
    	at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)
    	at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:36)
    	at org.gradle.tooling.internal.provider.continuous.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:110)
    	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64)
    	at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46)
    	at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:100)
    	at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:88)
    	at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:69)
    	at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:62)
    	at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:41)
    	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:63)
    	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
    	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:52)
    	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:40)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47)
    	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31)
    	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65)
    	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.internal.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:84)
    	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.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    	at java.base/java.lang.Thread.run(Thread.java:833)
    
    CONFIGURE SUCCESSFUL in 8s
    

    Duplicate issues

    • [X] This issue has not been reported yet.

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    bug 
    opened by Rajdave-dev 10
  • Some bugs in code completion

    Some bugs in code completion

    1. There is an issue with the case sensitivity of first letter of class names. For example, when typing "toa", we expect the "Toast" class to show up on the list, but it doesn't. We need to type "Toa", then it shows up. Normal variable names seem to show up as expected.

    2. After typing "Toastt", for example, then, a backspace to remove the extra "t", class "Toast" doesn't show as expected. The app needs to also update the list after every backspace.

    3. A class name of a class in its own file is being included in a code completion search, but a class defined in the same file as the main class is not.

    There are times when the completion service crashes and no list would show up when we type, but that's a different story. These issues listed here are for when the completion service is up and running.

    improvement 
    opened by dhaigit 10
  • Issues with file opening and saving

    Issues with file opening and saving

    LG, Android 8.0

    App freezes if I use the red-eyed menu button 4 or more times. Sometimes even less. If I leave that button alone, I might be lucky enough to make a successful compilation or build.

    All I can do is swipe it off the app list and start again. After swiping off a bunch of times, there's a chance some of the files get blanked out. Happened a few times.

    Also, when a file gets blanked out, you can't tap on it to open anymore.

    Tried to create an empty file and tapped on it to open. It didn't open either.

    bug 
    opened by dhaigit 10
  • library

    library "libz.so.1" not found

    After first build it says

    ========== [15:47:44] TASK_BEGIN: Start Completion Services ==========
    CANNOT LINK EXECUTABLE "ANDROIDIDE_HOME/jdk/bin/java": library "libz.so.1" not found
    CANNOT LINK EXECUTABLE "ANDROIDIDE_HOME/jdk/bin/java": library "libz.so.1" not found
    

    Information: Device: Galaxy Tab s3 Android 9 app version: 1.0.2.1-alpha Jdk: 07.08.2021

    bug 
    opened by uomar8 10
  • Bump kotlin-stdlib-jdk8 from 1.7.20 to 1.7.22

    Bump kotlin-stdlib-jdk8 from 1.7.20 to 1.7.22

    Bumps kotlin-stdlib-jdk8 from 1.7.20 to 1.7.22.

    Release notes

    Sourced from kotlin-stdlib-jdk8's releases.

    Kotlin 1.7.22

    This is a technical release. It doesn't contain any fixes that aren't included in Kotlin 1.7.21. Version 1.7.22 of the Kotlin plugin will not be available for downloading or installing in any IDEs.

    Checksums

    File Sha256
    kotlin-compiler-1.7.22.zip 9db4b467743c1aea8a21c08e1c286bc2aeb93f14c7ba2037dbd8f48adc357d83
    kotlin-native-linux-x86_64-1.7.22.tar.gz dd004d520056aba67f2955a3bec5af75f8f2d78b179d4b5f733a77e3eef57aff
    kotlin-native-macos-x86_64-1.7.22.tar.gz 153fa411fa8c993ce2635e2504e9b102cb05362cc794b66ef9def26a78b427b5
    kotlin-native-macos-aarch64-1.7.22.tar.gz 4ffcd76c77cc824eff8addd5e2a73da4f3bbd3584fa9ef282b3f669c45426b1e
    kotlin-native-windows-x86_64-1.7.22.zip 3bccd23479848ec61c56ed5760010456d17acbe88a00a1f10fb38eae256f2e92

    Kotlin 1.7.21

    Changelog

    Compiler

    • KT-54463 Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegate
    • KT-54509 Ir Interpreter: unable to evaluate string concatenation with "this" as argument
    • KT-54004 Builder type inference does not work correctly with variable assignment and breaks run-time
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-54615 JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expression
    • KT-54581 JVM: "VerifyError: Bad type on operand stack" with generic inline function and when inside try-catch block
    • KT-53146 JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtime
    • KT-54600 NPE on passing nullable Kotlin lambda as Java's generic SAM interface with super type bound
    • KT-54707 "VerifyError: Bad type on operand stack" in inline call chain on a nullable array value
    • KT-54650 Binary incompatible ABI change in Kotlin 1.7.20
    • KT-54802 "VerifyError: Bad type on operand stack" for inline functions on arrays

    Native. Runtime. Memory

    • KT-54498 Deprecation message of 'FreezingIsDeprecated' is not really helpful

    Tools. Gradle. Multiplatform

    • KT-54387 Remove MPP alpha stability warning
    • KT-48436 False positive "The Kotlin source set androidAndroidTestRelease was configured but not added to any Kotlin compilation"

    Tools. JPS

    • KT-45474 False positive NO_ELSE_IN_WHEN on sealed class with incremental compilation

    Checksums

    File Sha256

    ... (truncated)

    Changelog

    Sourced from kotlin-stdlib-jdk8's changelog.

    1.7.21

    Compiler

    • KT-54463 Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegate
    • KT-54509 Ir Interpreter: unable to evaluate string concatenation with "this" as argument
    • KT-54004 Builder type inference does not work correctly with variable assignment and breaks run-time
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-54615 JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expression
    • KT-54581 JVM: "VerifyError: Bad type on operand stack" with generic inline function and when inside try-catch block
    • KT-53146 JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtime
    • KT-54600 NPE on passing nullable Kotlin lambda as Java's generic SAM interface with super type bound
    • KT-54707 "VerifyError: Bad type on operand stack" in inline call chain on a nullable array value
    • KT-54650 Binary incompatible ABI change in Kotlin 1.7.20
    • KT-54802 "VerifyError: Bad type on operand stack" for inline functions on arrays

    Native. Runtime. Memory

    • KT-54498 Deprecation message of 'FreezingIsDeprecated' is not really helpful

    Tools. Gradle. Multiplatform

    • KT-54387 Remove MPP alpha stability warning
    • KT-48436 False positive "The Kotlin source set androidAndroidTestRelease was configured but not added to any Kotlin compilation"

    Tools. JPS

    • KT-45474 False positive NO_ELSE_IN_WHEN on sealed class with incremental compilation
    Commits
    • be3c5a5 Instruction for building 1.7.21 release
    • 80eb82a Instructions for building 1.7.20 release
    • cb51803 Scripts for building Kotlin repository
    • 7784d10 Change bootstrap to 1.7.21-release-254
    • e7f77e9 Keep track of array types in OptimizationBasicInterpreter
    • 7deaab9 Edit changelog for 1.7.21
    • 0b49dc2 Fix binary compatibility for inlined local delegated properies
    • 90b3e21 Advance bootstrap to 1.7.21
    • c55a197 Edit changelog for 1.7.21
    • b1b18c2 Add regression test for KT-54707
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump gradle-tooling-api from 7.5.1 to 7.6

    Bump gradle-tooling-api from 7.5.1 to 7.6

    Bumps gradle-tooling-api from 7.5.1 to 7.6.

    Release notes

    Sourced from gradle-tooling-api's releases.

    7.6

    The Gradle team is excited to announce Gradle 7.6.

    Read the Release Notes

    We would like to thank the following community members for their contributions to this release of Gradle: altrisi, aSemy, Ashwin Pankaj, Aurimas, BJ Hargrave, Björn Kautler, Bradley Turek, Craig Andrews, Daniel Lin, David Morris, Edmund Mok, Frosty-J, Gabriel Feo, Ivan Gavrilovic, Jendrik Johannes, John, Joseph Woolf, Karl-Michael Schindler, Konstantin Gribov, Leonardo Brondani Schenkel, Martin d'Anjou, Michael Bailey, Pete Bentley, Rob Bavey, Sam Snyder, sll552, teawithbrownsugar, Thomas Broadley, urdak, Varun Sharma, Xin Wang

    Upgrade instructions

    Switch your build to use Gradle 7.6 by updating your wrapper:

    ./gradlew wrapper --gradle-version=7.6

    See the Gradle 7.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading to Gradle 7.6.

    Reporting problems

    If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

    We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.

    ... (truncated)

    Changelog

    Sourced from gradle-tooling-api's changelog.

    { "latestReleaseSnapshot": { "version": "7.6-20221123002330+0000", "buildTime": "20221123002330+0000" }, "latestRc": { "version": "7.6-rc-4", "buildTime": "20221122094210+0000" }, "finalReleases": [ { "version": "7.6", "buildTime": "20221125133510+0000" }, { "version": "7.5.1", "buildTime": "20220805211756+0000" }, { "version": "7.5", "buildTime": "20220714124815+0000" }, { "version": "7.4.2", "buildTime": "20220331152529+0000" }, { "version": "7.4.1", "buildTime": "20220309150447+0000" }, { "version": "7.4", "buildTime": "20220208095838+0000" }, { "version": "7.3.3", "buildTime": "20211222123754+0000" }, { "version": "7.3.2", "buildTime": "20211215112231+0000" }, { "version": "7.3.1", "buildTime": "20211201154220+0000" }, { "version": "7.3", "buildTime": "20211109204036+0000" },

    ... (truncated)

    Commits
    • daece9d Merge pull request #22817 Update wrapper
    • 3e8c750 Update wrapper
    • 87a8037 Use Adoptium JDK on m1 mac as well
    • 0cb7b46 Use Temurin JDK as build JVM on Mac M1
    • 1959236 Merge pull request #22778 Add Upgrade Note for Strongly Typed Dependencies in...
    • d14cc44 Correct typo, phrasing
    • 10302c4 Update subprojects/docs/src/docs/userguide/migration/upgrading_version_7.adoc
    • 716906d Update subprojects/docs/src/docs/userguide/migration/upgrading_version_7.adoc
    • 0df577d Update subprojects/docs/src/docs/userguide/migration/upgrading_version_7.adoc
    • 29aeab2 Various rewording changes as suggested by reviewers
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump kotlin-gradle-plugin from 1.7.20 to 1.7.22

    Bump kotlin-gradle-plugin from 1.7.20 to 1.7.22

    Bumps kotlin-gradle-plugin from 1.7.20 to 1.7.22.

    Release notes

    Sourced from kotlin-gradle-plugin's releases.

    Kotlin 1.7.21

    Changelog

    Compiler

    • KT-54463 Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegate
    • KT-54509 Ir Interpreter: unable to evaluate string concatenation with "this" as argument
    • KT-54004 Builder type inference does not work correctly with variable assignment and breaks run-time
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-54615 JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expression
    • KT-54581 JVM: "VerifyError: Bad type on operand stack" with generic inline function and when inside try-catch block
    • KT-53146 JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtime
    • KT-54600 NPE on passing nullable Kotlin lambda as Java's generic SAM interface with super type bound
    • KT-54707 "VerifyError: Bad type on operand stack" in inline call chain on a nullable array value
    • KT-54650 Binary incompatible ABI change in Kotlin 1.7.20
    • KT-54802 "VerifyError: Bad type on operand stack" for inline functions on arrays

    Native. Runtime. Memory

    • KT-54498 Deprecation message of 'FreezingIsDeprecated' is not really helpful

    Tools. Gradle. Multiplatform

    • KT-54387 Remove MPP alpha stability warning
    • KT-48436 False positive "The Kotlin source set androidAndroidTestRelease was configured but not added to any Kotlin compilation"

    Tools. JPS

    • KT-45474 False positive NO_ELSE_IN_WHEN on sealed class with incremental compilation

    Checksums

    File Sha256
    kotlin-compiler-1.7.21.zip 8412b31b808755f0c0d336dbb8c8443fa239bf32ddb3cdb81b305b25f0ad279e
    kotlin-native-linux-x86_64-1.7.21.tar.gz 0f9eb04a5ee0665a195c1f1093c778f5696216660feb638b29f923f586093dd0
    kotlin-native-macos-x86_64-1.7.21.tar.gz 9530cadcf05cfd6111ef35725115009283b1a0292427261b78d43853c35ccd44
    kotlin-native-macos-aarch64-1.7.21.tar.gz f75e1a68e193b0cd9df56f15166fb4e721641b408065531b620cf204d78922e5
    kotlin-native-windows-x86_64-1.7.21.zip 5e76301f6c386ea83dc668e171887244908c18da636f7237d5371b56d8fec8da
    Changelog

    Sourced from kotlin-gradle-plugin's changelog.

    1.7.21

    Compiler

    • KT-54463 Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegate
    • KT-54509 Ir Interpreter: unable to evaluate string concatenation with "this" as argument
    • KT-54004 Builder type inference does not work correctly with variable assignment and breaks run-time
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-54615 JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expression
    • KT-54581 JVM: "VerifyError: Bad type on operand stack" with generic inline function and when inside try-catch block
    • KT-53146 JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtime
    • KT-54600 NPE on passing nullable Kotlin lambda as Java's generic SAM interface with super type bound
    • KT-54707 "VerifyError: Bad type on operand stack" in inline call chain on a nullable array value
    • KT-54650 Binary incompatible ABI change in Kotlin 1.7.20
    • KT-54802 "VerifyError: Bad type on operand stack" for inline functions on arrays

    Native. Runtime. Memory

    • KT-54498 Deprecation message of 'FreezingIsDeprecated' is not really helpful

    Tools. Gradle. Multiplatform

    • KT-54387 Remove MPP alpha stability warning
    • KT-48436 False positive "The Kotlin source set androidAndroidTestRelease was configured but not added to any Kotlin compilation"

    Tools. JPS

    • KT-45474 False positive NO_ELSE_IN_WHEN on sealed class with incremental compilation
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump org.eclipse.jgit from 3.7.1.201504261725-r to 6.3.0.202209071007-r

    Bump org.eclipse.jgit from 3.7.1.201504261725-r to 6.3.0.202209071007-r

    Bumps org.eclipse.jgit from 3.7.1.201504261725-r to 6.3.0.202209071007-r.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump slf4j-api from 2.0.3 to 2.0.5

    Bump slf4j-api from 2.0.3 to 2.0.5

    Bumps slf4j-api from 2.0.3 to 2.0.5.

    Commits
    • 7e62e1e prepare release 2.0.5
    • d250ad7 in jcl-over-slf4j rename LICENSE.TXT as LICENSE, add LICENSE file to log4j-ov...
    • 3bc58f3 add SecurityManager support
    • 207bb29 start work on 2.0.5-SNAPSHOT
    • 35dd7ff removed unused META-INF/services entry
    • 440c2f3 prepare release 2.0.4
    • 43a3630 use the class loader that loaded LoggerFactory (instead of the threadContextC...
    • 557bf7c [SLF4J-548] Fix ServiceLoader usage in servlet environment
    • 6324105 enhance manifest with capabilities
    • e540299 edit blurb on release championing
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(v2.1.3-beta)
  • v2.1.3-beta(Nov 15, 2022)

    This release brings various improvements and bug fixes to AndroidIDE.

    Important notes

    The UI designer has been TEMPORARILY removed as we are working on integrating it with the new projects API for better and improved layout inflation/preview.

    Additions

    • The IDE now creates .nomedia file in the PROJECTS directory if the file does not already exist. Thanks to @jayx003 (#489).
    • Added XML formatter.
    • You can now long click on completion items to open documentation. Works only for Android framework classes, methods and fields.
    • Added option to choose custom font for editor and terminal. Thanks to @deepkrg17 (#548).
    • Readded Clear Gradle cache preference. Thanks to @deepkrg17 (#587).

    Removals

    • The UI designer.

    Fixes

    • Some classes not being shown in completion (#500).
    • APK metadata cannot be parsed for release builds (#470).
    • Extra closing curly brace when formatting Java code (#504).
    • Crash on closing cached ZipFileSystem for deleted files (#535).
    • Invalid java.lang.* imports when creating Java files.
    • Expand selection does not select expanded range (#557).
    • Generated getters and setters are package private (#559).
    • Physical keyboard does not work in terminal (#287).
    • Diagnostic window is partly invisible for long messages (#565).
    • Text actions window overlaps diagnostic window (#570).

    Improvements

    • Use session based installer for APK installations. Intent based installer is still used for MIUI.
    • Replaced the Build actions menu with the new Run tasks dialog. This allows the user to run multiple tasks from the projects.
    • Dismiss editor popup windows when the editor loses focus. Thanks to @Devendra34 (#494).
    • The text actions windows is now NOT dismissed for certain actions (#393).
    • Replaced action bar searcher with bottom bar.
    • The IDE now does not set LD_LIBRARY_PATH variable to provide (partial) support for projects with room DB.
    • Synchronize append and delete in build output (#540).
    • The --info argument is now disabled by default. It is now used for first build only.
    • Updated Bengali translations. Thanks to @deepkrg17 (#514, #522).
    • Updated Chinese translations. Thanks to @mikofe (#528).
    • Updated Portuguese translations. Thanks for @FrioGitHub (#456).

    New Contributors

    • @jayx003 made their first contribution in https://github.com/AndroidIDEOfficial/AndroidIDE/pull/489
    • @PranavPurwar made their first contribution in https://github.com/AndroidIDEOfficial/AndroidIDE/pull/482
    • @Devendra34 made their first contribution in https://github.com/AndroidIDEOfficial/AndroidIDE/pull/494
    • @NiceSapien made their first contribution in https://github.com/AndroidIDEOfficial/AndroidIDE/pull/515

    Full Changelog: https://github.com/AndroidIDEOfficial/AndroidIDE/compare/v2.1.2-beta...v2.1.3-beta

    Source code(tar.gz)
    Source code(zip)
    androidide-v2.1.3-beta.apk(106.49 MB)
  • v2.1.2-beta(Sep 28, 2022)

    This release focuses mostly on the LSP implementations while fixing bugs. Thanks to people who have contributed to this release by adding features, adding/updating translations, fixing bugs, etc.

    Important notes

    • Most of the things are now dependent on the initialization of the project, including the Java and XML LSP, find in project, etc. So, it is highly recommended that you wait for the project to be initialized properly.

    Additions

    • New project templates. By @MrIkso (#226).
    • New file icons in tree view. By @AndreyKozhev (#374, #380).
    • Horizontal + vertical (expanded) editor actions window.
    • Symbol input for text and other files. By @AndreyKozhev (#400).
    • Support for range code formatting. By @AndreyKozhev (#405).
    • You can now choose to open a file with external application. By @AndreyKozhev (#442).
    • Added a preference to toggle usage of soft tabs.
    • Added a 'No activity' template. By @AndreyKozhev (#462).
    • Added Bengali translations. By @deepkrg17 (#331, #368, #463).

    Fixes

    Following issues have been fixed in this release :

    • Incomplete classpath provided by the Tooling API implementation.
    • Broken import auto completion (#225).
    • Crash caused due to access to binding in a destroyed fragment/activity (#257, #260).
    • Crash when initializing language servers.
    • Crash when searching in project.
    • Crash when closing project (#353).
    • Crash trying to list files after FileTreeFragment has been destroyed.
    • Error when pressing back in CrashHandlerActivity.
    • Progress indicator hides even if the build is still in progress.
    • Exception is thrown when Tooling API thread is already started. By @MatheusTGamerPro (#325).
    • Tree view cannot be scrolled horizontally to the left (#340).
    • Chevron icon not updated for directories in tree view (#340).
    • Node not removed from file tree after rename/deletion event of file.
    • Attribute editor layouts are not scrollable (#329).
    • Images open as text files in editor (#316).
    • Dark link colors in About activity (#361).
    • Added switch to toggle the use of ICU lib (#95).
    • Window leak when activity is being destroyed and there are unsaved files.
    • Cannot find attribute app:popupOverlay in template projects.
    • Invalid icons shown for files in search results (#389).
    • Fixed a bug that caused SymbolInputView to show nothing. By @AndreyKozhev (#400).
    • Options menu items are not updated in some cases.
    • Options menu items are cleared when a build is in progress and the IDE is minimized.
    • File not saved after returning from UI designer.
    • Improper handling of APK redirect file when installing APK (#470).

    Improvements

    • Improved Java and XML completions.
    • Updated aapt2 binaries.
    • Action menus are disabled if all of its children are disabled.
    • Hide tab layout when no files are opened (#330).
    • Do not show full error message when layout inflation fails (#274).
    • Use Storage Access Framework (SAF) for picking directories.
    • 'Preview layout' item now has more priority than other options menu icons (#243).
    • Do not show editor actions window when in search mode.
    • Use relative padding in TreeView to support RTL layouts.
    • Updated crash report. By @AndreyKozhev (#460).
    • Updated German translations (#466).
    • Updated Hindi translations. By @Premjit-Chowdhury (#443).
    • Updated Russian translations. By @AndreyKozhev (#237, #292, #363, #395, #461).
    • Updated Portuguese translations. By @MatheusTGamerPro (#286) and @FrioGitHub (#398).

    New Contributors

    • @MatheusTGamerPro made their first contribution in https://github.com/AndroidIDEOfficial/AndroidIDE/pull/286
    • @dead8309 made their first contribution in https://github.com/AndroidIDEOfficial/AndroidIDE/pull/336
    • @deepkrg17 made their first contribution in https://github.com/AndroidIDEOfficial/AndroidIDE/pull/331
    • @Micoder-dev made their first contribution in https://github.com/AndroidIDEOfficial/AndroidIDE/pull/385
    • @FrioGitHub made their first contribution in https://github.com/AndroidIDEOfficial/AndroidIDE/pull/398

    Full Changelog: https://github.com/AndroidIDEOfficial/AndroidIDE/compare/v2.1.1-beta...v2.1.2-beta

    Source code(tar.gz)
    Source code(zip)
    androidide-v2.1.2-beta.apk(105.54 MB)
  • v2.1.1-beta(Jun 24, 2022)

  • v2.1.0-beta(Jun 23, 2022)

    Important notes

    • The HOME and SYSROOT directories has been renamed to home and usr respectively.
    • The packages for the AndroidIDE terminal has been updated. But, it requires you to reinstall the bootstrap packages. Please follow this guide to install the new bootstrap packages.
    • Android 12 devices no longer need to use 32-bit build tools. You can simply reinstall AndroidIDE with 64-bit build tools.
    • You can now easily open/show the ide-environment.properties file using the ideenv command. Execute :
      • ideenv -e: To edit the environments file. Uses nano editor to edit.
      • ideenv -s: To print the contents of the file in the terminal.
    • The minimum Android Gradle Plugin version required to build projects in AndroidIDE is now set to version 7.2.0. The build process will fail for projects using older versions. However, those projects would still be able to build with terminal.

    Additions

    • Warn about empty body for the following statements :
      • if
      • else
      • try
      • catch
      • finally
      • for
      • while
      • do while
    • New java code actions :
      • Generate toString(): Overrides the toString() method for the current class. Always accessible.
      • Generate constructor: Allows the user to select fields from the current class, then generates a constructor with those fields as parameters.
      • Remove unused imports: Removes imports that are not used in the source file.
      • Import orderer: Organizes the imports. Thanks to @MrIkso (#180).
    • XML Code formatter. Thanks to @MrIkso (#182).
    • New Gradle command line options: --build-cache and --offline. Thanks to @MrIkso (#180).
    • Highlight IDE logs based on the log line priority.
    • Option to share Build Output, App log and IDE logs as text file.
    • Syntax highlighting for Kotlin and C/C++ language. Thanks to @MrIkso (#196).
    • Highlight hex color code in string literals. Thanks to @MrIkso (#209).
    • Save all files before executing any build process. (#209).
    • New Template: Jetpack Compose. Thanks to @BanDroid (#198).
    • Added Brazilian Portuguese translations. Thanks to @ghost (#165).

    Removals

    • $ANDROID_HOME/cmake/bin is no longer prefixed to the PATH variable.
    • Removed syntax highlighting from log views.

    Fixes

    • Crash when performing 'Replace all' action in editor (#158).
    • Crash when layout inflation fails (#168).
    • Always show toasts on UI thread (#160).
    • Fixed: Invalid log line formatting when tag to too long.
    • Fixed: Application crashes when layout inflation fails (#168).
    • Fixed: Invalid syntax highlighting for text tags in XML files. Thanks to @MrIkso (#180).
    • Memory leaks in some fragments. Thanks to @MrIkso (#209).
    • Fixed: Extra empty new line gets appendend to files while saving.
    • Fixed: SuperNotCalledException in DesignerActivity (#214). Thanks for @MrIkso (#219).

    Improvements

    • Do not show 'Cut' & 'Paste' action if editor is not editable.
    • Include aapt2 in IDE itself. The IDE now automatically specifies android.aapt2FromMavenOverride property while building projects.
    • Use ported version of NetBeans' nb-javac for Java language server.
    • Removed extra Maven repository URLs from project templates. Thanks to @MrIkso (#188).
    • Show progress indicator when initializing project
    • Update dependency versions in project templates and update the Kotlin project template image. Thanks to @BanDroid (#191).
    • Ability to cache completion results for faster completions on next completion request.
    • Use Gradle v7.4.2 in template projects and updated template dependencies Thanks to @MrIkso (#209).
    • The project creator UI and logic has been improved (#209).
    • Use of libhook.so is now optional and is DISABLED by default. This hook is only required if you use JDK 11 and if you have an Android 11 or lower device.
    • JDK 17 is now preferred by the IDE. It looks for JDK 11 only if JDK 17 is not found on path $SYSROOT/opt/openjdk.
    • Implemented incremental analysis for supported languages.
    • Updated Hindi translations. Thanks to @Premjit-Chowdhury (#171).
    • Updated Russian translation. Thansk to @AndreyKozhev (#181 and #220).
    • Updated Chinese translations. Thanks to @mikofe (#192).
    • Added missing translations for PT-BR. Thanks to @ghost (#176).

    New Contributors

    • @BryanGIG made their first contribution in https://github.com/itsaky/AndroidIDE/pull/179
    • @MrIkso made their first contribution in https://github.com/itsaky/AndroidIDE/pull/180
    • @AndreyKozhev made their first contribution in https://github.com/itsaky/AndroidIDE/pull/181

    Full Changelog: https://github.com/itsaky/AndroidIDE/compare/v2.0.1-beta...v2.1.0-beta

    Source code(tar.gz)
    Source code(zip)
    androidide-v2.1.0-beta.apk(76.29 MB)
  • v2.0.1-beta(Apr 16, 2022)

    Important notes

    • As 64-bit installation does not work on Android 12 (due to restriction by the OS), 32-bit build tools need to be installed when installing AndroidIDE on devices running Android 12.
    • Google services and Firebase integration has been removed from AndroidIDE. This DOES NOT mean that you cannot build projects that use Firebase. Building projects with Firebase integration is SUPPORTED.

    Additions

    • Code formatter for Java source code.
    • Support for GestureOverlayView, ToggleButton, Switch, GridLayout, ListView (#145) in layout inflater.
    • Preference to disable use of TYPE_TEXT_VARIATION_VISIBLE_PASSWORD flag in editor.
    • Automatically trigger completion when attributes are inserted from completion window.
    • New java code actions :
      • Add import
      • Add 'throws'
      • Generate constructor
      • Generate setters/getters
      • Field to block
      • Remove unused class
      • Remove unused method
      • Remove unused 'throws'
    • You can now override multiple superclass methods at once.
    • DocumentsProvider for providing access to files in HOME directory.

    Removals

    • Removed initial view attributes from view tags completion in XMLCompletionProvider.
    • Vertical text action window has been removed.
    • Removed Google services and Firebase integration.
    • Removed the horizontal text actions menu from the editor in favour of the new actions menu.

    Fixes

    • Crash in attribute editors when adding an attribute.
    • Crash when selecting diagnostic item from diagnostics list.
    • Some diagnostic items are not shown in diagnostic window (#96).
    • Diagnostics were updated late in the editor.
    • Popup windows created by editor are not dismissed even when the file is closed.
    • No build output when activity is recreated (#121).
    • Crash in UI Designer when activity is recreated (#124).
    • Invalid syntax highlighting for application logs (#152).
    • IllegalArgumentException while overriding methods in Java completion provider.

    Improvements

    • Do not import classes from java.lang package when completion items are selected.
    • XML completion provider now uses 'Match completions in lower case' preference.
    • Dismiss all windows shown by editor when file tab is unselected or when the bottom sheet is expanded.
    • Improved the editor actions menu.
    • Sort completion items according to their kind and sort text.
    • Restore file tree state when application is resumed (#150).
    • Updated templates to work with Android 12 (#144).
    • Updated Chinese translation. Thanks to @mikofe (#128) and @Rosemoe (#141).
    • Updated French translation. Thanks to @Se-Lyan (#136).
    • Updated German translation (#144).

    Full Changelog: https://github.com/itsaky/AndroidIDE/compare/v2.0.0-beta...v2.0.1-beta

    Source code(tar.gz)
    Source code(zip)
    androidide-v2.0.1-beta.apk(76.28 MB)
  • v2.0.0-beta(Mar 18, 2022)

    AndroidIDE v2.0.0-beta is here with new features and improvements.

    This is a pre-release and is not so stable. There are some features that are partially implemented.

    The minimum SDK has been raised to 26 (Android O).

    Changelog

    Here are the things that were added/removed/improved.

    Additions

    • XML Layout Designer with ability to preview XML drawables.
    • Added packages for terminal.
    • libGDx project template. Thanks to @Smooth-E (#81).
    • Kotlin project template. Thanks to @BanDroid (#60).
    • Preference to switch between bash and /system/bin/sh in terminal.
    • Preference for matching partial names in java completion.
    • Preference to choose between floating window text actions and text actions in ActionMode.
    • Preference to enable/disable font ligatures.
    • Show process output when build tools installation fails.
    • Ability to expand selection in supported languages.
    • Ask user to save unsaved files before closing project.
    • Hindi translation. Thanks to @Premjit-Chowdhury (#70, #127).
    • German translation. Thanks to @MarvinStelter.
    • Indonesian translation. Thanks to @BanDroid (#54, #57, #60, #72, #125).
    • Chinese translation. Thanks to @Rosemoe (#56, #73, #104) and @mikofe (#118, #119, #123).
    • French translation. Thanks to @Se-Lyan (#79).
    • Russian translation. Thanks to @Smooth-E (#97).

    Removals

    • Autosave of files is removed. However, a preference has been added for the same which, when enabled, saves the files automatically before close.

    Fixes

    • File does not close and crashes if reopened and closed again.
    • Flickering of whole auto completion window.
    • Flickering of completion item due to API info.
    • Build tools installation fails if JAVA_HOME does not exist.
    • Invalid syntax highlight for method invocations in java.
    • Package private classes not included in java completion.
    • IDE crashes when Paste option is selected in terminal and no clip is available.
    • Fixed a bug due to which the IDE was not able to open empty files.
    • LogSender class not included in JLS workspace.

    Improvements

    • Show crash report when the IDE crashes.
    • The Java language server is now embedded in the IDE itself.
    • The AndroidIDE Gradle plugin is now packaged with the IDE.
    • Show name of opened project.
    • Show signature help in window instead of using a TextView.
    • The java completion provider now uses a custom JDK runtime image with Android framework classes and is no more dependent on JDK installation.
    • Disable Save option when all files are saved.
    • Allow installation of files from file tree.

    New Contributors

    • @BanDroid
    • @Rosemoe
    • @Premjit-Chowdhury
    • @Se-Lyan
    • @Smooth-E
    • @ansh2166
    • @mikofe
    Source code(tar.gz)
    Source code(zip)
    androidide-v2.0.0-beta.apk(76.64 MB)
Owner
Akash Yadav
Student
Akash Yadav
A podcast proxy that sits between itunes search api and android apps allowing normalization of rss feeds to standard Json format that can be consumed by apps.

Podcasts Rss Feeds Search Proxy A podcast proxy written using kotlin dsl that sits between itunes search api, podcasts rss feeds and android apps allo

8BitsLives .❤️ 1 Jan 15, 2022
In this Repo i create public apis to serve apps, like muslim apps using Spring, kotlin, and microservices

spring-freelance-apis-kotlin In this Repo i create public apis to serve apps, like muslim apps using Spring, kotlin, and microservices This repo for l

null 6 Feb 13, 2022
Reach plc. Apps Team Exercise (Junior)Reach plc. Apps Team Exercise (Junior)

Reach plc. Apps Team Exercise (Junior) Description One of our magazines is looking for new sources of revenues and starts a few partnerships with beau

null 0 Nov 9, 2021
Kotlin TodoMVC – full-stack Kotlin application demo

Kotlin full stack TodoMVC This project is an example implementation of the TodoMVC app written in Kotlin. More specifically, it's the Kotlin port of t

Gyula Voros 22 Oct 3, 2022
A repository full of Forge 1.8.9 Kotlin utilities

kotlin-forge-api kotlin-forge-api is a repository full of different APIs to be used by mods for Forge 1.8.9 to make modding easier! Warning! To use an

Shalom Ademuwagun 7 Sep 28, 2022
Full stack examples of how to use Hotwire JS in Kotlin services

hotwire-kt A collection of Kotlin examples using the Hotwire JS framework to build interactive web apps with a Kotlin Armeria server backend. Using Ho

Andrew (Paradi) Alexander 9 Oct 2, 2022
🧶 Full-fledged Kotlin client for MikaBot/cluster-operator as a separate package

?? Eri Full-fledged Kotlin client for MikaBot/cluster-operator as a separate package Usage Connecting to operator fun main(args: Array<String>) {

Nino 3 Nov 17, 2021
Lucilla - Fast, efficient, in-memory Full Text Search for Kotlin

Lucilla Lucilla is an in-memory Full Text Search library for Kotlin. It allows t

Kshitij Chauhan 108 Oct 14, 2022
📌This repo contains the kotlin implementation of TensorflowLite Example Android Apps🚀

TensorflowLite Examples Kotlin This repo contains the kotlin implementation of TensorflowLite Example Apps here, which are mostly implemented in java

Sunit Roy 28 Oct 27, 2022
Hands-on experiments to demonstrate the exploitability of insecure TLS configurations in Android apps

Containerized Demo for Insecure TLS Certificate Checking in Android Overview Thi

Guardsquare 12 Jul 27, 2022
Sushi Design System - UI Kit for Android apps

Sushi Design System ⚡️ Android UI Kit ⚡️ Application is available here: Latest release: Usage The master branch is being used for release and dev is t

Zomato 83 Oct 26, 2022
Android & iPhone payments apps built w/ SwiftUI & Jetpack Compose

Android & iPhone payments apps built w/ SwiftUI & Jetpack Compose, the apps persist data locally w/ SQLDelight and Remote w/ Firebase., Payments w/ Stripe and are architected to emphasize code sharing

Mwai Banda 20 Nov 20, 2022
XCore is a Open-Source , simple and lightweight API & Template for Android Apps.

XCore XCore is a Open-Source , simple and lightweight API & Template for Android Apps. Support XCore is compatible with Android Studio & Sketchware Pr

TherionRO 2 Sep 28, 2022
This is a work-in-progress (🔧️) ultraviolet index viewer app for demonstrating Instant Apps + Kotlin + Dagger + MVP

UV Index A simple ultraviolet index viewer app for demonstrating: Instant Apps + Kotlin + Dagger + MVP Built With Weatherbit as weather API Android In

Mustafa Berkay Mutlu 65 Oct 31, 2022
Playground UI Compose in Desktop Apps

caravan-kotlin-desktop-compose Project Learning Jetpack Compose on Desktop Aplication Request Data Retrofit Version Release This Is Latest Release $ve

Faisal Amir 13 Nov 18, 2022
Almost all modern mobile consumer apps are constructed from the same 4 components

?? Why? Almost all modern mobile consumer apps are constructed from the same 4 components. A component to communicate to the backend server A way to o

AT 0 Nov 10, 2021
Template to accelerate the creation of new apps using Spring Boot 3, MongoDB & GraphQL.

Template to accelerate the creation of new apps using Spring Boot 3, MongoDB & GraphQL.

André Ramon 1 Feb 13, 2022
Ksp-di-library - Small library for DI in KMM apps

DI-KSP Small library for DI in KMM apps. Uses KSP for processing DI annotations:

Anna Zharkova 3 Feb 6, 2022
🟣 Opinionated Kotlin libs, DSLs and frameworks to build better web apps

Tegral Tegral is an opinionated collection of Kotlin frameworks, libraries, helpers and DSLs that help you make awesome apps, from web back-ends and b

Zoroark 14 Oct 3, 2022