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  treeView=com.unnamed.b.atv.view.AndroidTreeView@4f82168 
    GradleBuildService        I   Starting tooling API server... 
    FileTreeFragment          E   Unable to restore tree state  treeState=null  treeView=com.unnamed.b.atv.view.AndroidTreeView@4f82168 
    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=  treeView=com.unnamed.b.atv.view.AndroidTreeView@2d1777a
    
    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
  • fix(deps): update dependency org.jetbrains:annotations to v23

    fix(deps): update dependency org.jetbrains:annotations to v23

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.jetbrains:annotations | 13.0 -> 23.1.0 | age | adoption | passing | confidence |


    ⚠ Dependency Lookup Warnings ⚠

    Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.


    Release Notes

    JetBrains/java-annotations

    v23.1.0

    Compare Source

    • Added new annotation: @ApiStatus.Obsolete.

    v23.0.0

    Compare Source

    • Added new annotations: @BlockingExecutor and @NonBlockingExecutor.

    v22.0.0

    Compare Source

    • Added new annotations: @Blocking and @NonBlocking.

    v21.0.1

    Compare Source

    • Multi-Release Jar: Manifest fixed

    v21.0.0

    Compare Source

    • Added new annotation: @UnknownNullability.
    • Proper JPMS module.
    • JdkConstants deprecated.

    v20.1.0

    Compare Source

    • Added TYPE_USE target for PropertyKey annotation.

    v20.0.0

    Compare Source

    • Added new annotation: @MustBeInvokedByOverriders.
    • Added new annotation: @VisibleForTesting.
    • Added TYPE_USE target for NonNls annotation.
    • String attributes of annotations are marked as @NonNls where applicable.
    • Documentation for @Nls and @NonNls updated: now they could be used as meta-annotations.
    • Documentation added for @Subst annotation.

    v19.0.0

    Compare Source

    • Added new annotations: @Unmodifiable and @UnmodifiableView.
    • Added TYPE_USE target for Nls annotation.
    • Improved the documentation for @Language, @Pattern, @RegExp, and @ApiStatus.Internal annotations.
    • Fixed Automatic-Module-Name for Java 5.

    v18.0.0

    Compare Source

    • Added new annotation family @ApiStatus.*
    • Added new annotation @Debug.Renderer

    v17.0.0

    Compare Source

    • Added new annotation: @Range

    v16.0.3

    Compare Source

    • Added Automatic-Module-Name to MANIFEST.MF

    v16.0.2

    Compare Source

    • Improved the documentation for the @Contract annotation.

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update dependency org.eclipse.jgit:org.eclipse.jgit to v6

    fix(deps): update dependency org.eclipse.jgit:org.eclipse.jgit to v6

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.eclipse.jgit:org.eclipse.jgit | 3.7.1.201504261725-r -> 6.4.0.202211300538-r | age | adoption | passing | confidence |


    ⚠ Dependency Lookup Warnings ⚠

    Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update dependency com.android.tools:desugar_jdk_libs to v2

    fix(deps): update dependency com.android.tools:desugar_jdk_libs to v2

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.android.tools:desugar_jdk_libs | 1.1.6 -> 2.0.0 | age | adoption | passing | confidence |


    ⚠ Dependency Lookup Warnings ⚠

    Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.


    Release Notes

    google/desugar_jdk_libs

    v2.0.0

    • Release based on JDK-11. Require AGP version 7.4.0-alpha10 or later (Android Studio 2022.1.1).
    • Supports three different configurations desugar_jdk_libs_minimal, desugar_jdk_libs and desugar_jdk_libs_nio.
      • desugar_jdk_libs_minimal limits desugaring to package java.util.function and class java.util.Optional.
      • desugar_jdk_libs desugars the same APIs as in version 1.1.x and 1.2.x.
      • desugar_jdk_libs_nio includes desugaring of package java.nio.

    v1.2.2

    • Add support for API level 33.

    v1.2.0

    • Release based on JDK-11. Require AGP version 7.3.0-beta03 or later (Android Studio 2021.3.1).
    • support for all java.util methods added in API level 31 (classes java.util.Duration and java.util.LocalTime).
    • Support for all methods on java.util.concurrent.ConcurrentHashMap.
    • Added class java.util.concurrent.Flow.

    v1.1.8

    Same as in version 1.2.2 above.


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update dependency com.android.tools.build:aapt2-proto to v7.3.1-8691043

    fix(deps): update dependency com.android.tools.build:aapt2-proto to v7.3.1-8691043

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.android.tools.build:aapt2-proto (source) | 7.2.2-7984345 -> 7.3.1-8691043 | age | adoption | passing | confidence |


    ⚠ Dependency Lookup Warnings ⚠

    Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update com.android.tools

    fix(deps): update com.android.tools

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.android.tools:annotations (source) | 30.2.2 -> 30.3.1 | age | adoption | passing | confidence | | com.android.tools:common (source) | 30.2.2 -> 30.3.1 | age | adoption | passing | confidence | | com.android.tools:desugar_jdk_libs | 1.1.6 -> 1.2.2 | age | adoption | passing | confidence |


    ⚠ Dependency Lookup Warnings ⚠

    Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.


    Release Notes

    google/desugar_jdk_libs

    v1.2.2

    • Add support for API level 33.

    v1.2.0

    • Release based on JDK-11. Require AGP version 7.3.0-beta03 or later (Android Studio 2021.3.1).
    • support for all java.util methods added in API level 31 (classes java.util.Duration and java.util.LocalTime).
    • Support for all methods on java.util.concurrent.ConcurrentHashMap.
    • Added class java.util.concurrent.Flow.

    v1.1.8

    Same as in version 1.2.2 above.


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[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 .❤️ 2 Nov 27, 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 Dec 14, 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 111 Jan 6, 2023
📌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 Dec 13, 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 13 Dec 19, 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 84 Dec 9, 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 21 Dec 21, 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 3 Dec 2, 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 15 Dec 8, 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 21 Dec 22, 2022