Comments (13)
不是 兄弟, 这是你对接之后的问题 还是 Demo 中的?
from component.
作者你好,我已经找到问题了:就是注释掉apply plugin: 'com.xiaojinzi.component.plugin'就可以运行Demo的app了,但有个疑问:这个是为什么呢?
from component.
注释掉apply plugin: 'com.xiaojinzi.component.plugin以后,模块加载不了了。。。
from component.
我是运行Demo中的app才出现上面的错误,运行Module1run是没问题的。关于我的版本
from component.
我这里开启插件没啥问题. 那个插件是用来收集所有可以加载的模块的. 注释掉模块就不能自动加载了. 那就需要手动加载了
具体可以看 文档 介绍
from component.
我本来想看看怎么自动装载的,难道无奈只能用手动了。。。,我用的是1.9.4插件
from component.
我本来想看看怎么自动装载的,难道无奈只能用手动了。。。,我用的是1.9.4插件
实际上没有啥高深的原理. 无非就是本来需要你手动传的各个模块的名称去注册变成了插件扫描到所有的模块名称, 然后帮你去注册而已.
// 手动注册
ModuleManager.register(module1, module2,....)
// 自动注册
val moduleNames = ASMUtil.getModuleNames()
ModuleManager.register(moduleNames)
关键的地方在这, getModuleNames 方法内部会被 Gradle 插件扫描 class 所填充.
from component.
我也遇到这报错了,develop分支的。跑demo跑出来的,拉起应用就直接闪退报错了。
---------------------------- PROCESS ENDED (815) for package com.xiaojinzi.componentdemo ----------------------------
---------------------------- PROCESS STARTED (932) for package com.xiaojinzi.componentdemo ----------------------------
2024-01-30 15:19:53.583 932-932 Compatibil...geReporter com.xiaojinzi.componentdemo D Compat change id reported: 242716250; UID 10191; state: DISABLED
2024-01-30 15:19:53.603 932-932 ziparchive com.xiaojinzi.componentdemo W Unable to open '/data/data/com.xiaojinzi.componentdemo/code_cache/.overlay/base.apk/classes.dm': No such file or directory
2024-01-30 15:19:53.638 932-932 i.componentdemo com.xiaojinzi.componentdemo W Failure to verify dex file '/data/data/com.xiaojinzi.componentdemo/code_cache/.overlay/base.apk/classes.dex': Invalid type descriptor: 'Lcom/xiaojinzi/component/impl/application/com.xiaojinzi.component.impl.application.AppModuleAppGenerated;'
2024-01-30 15:19:53.638 932-932 System com.xiaojinzi.componentdemo E Unable to load dex file: /data/data/com.xiaojinzi.componentdemo/code_cache/.overlay/base.apk/classes.dex
2024-01-30 15:19:53.641 932-932 System com.xiaojinzi.componentdemo E java.io.IOException: Failed to open dex files from /data/data/com.xiaojinzi.componentdemo/code_cache/.overlay/base.apk/classes.dex because: Failure to verify dex file '/data/data/com.xiaojinzi.componentdemo/code_cache/.overlay/base.apk/classes.dex': Invalid type descriptor: 'Lcom/xiaojinzi/component/impl/application/com.xiaojinzi.component.impl.application.AppModuleAppGenerated;'
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:406)
at dalvik.system.DexFile.(DexFile.java:128)
at dalvik.system.DexFile.(DexFile.java:101)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:438)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:387)
at dalvik.system.DexPathList.(DexPathList.java:166)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:160)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:130)
at dalvik.system.PathClassLoader.(PathClassLoader.java:146)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:93)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:134)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:126)
at android.app.ApplicationLoaders.getClassLoaderWithSharedLibraries(ApplicationLoaders.java:61)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:1034)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:1126)
at android.app.LoadedApk.getResources(LoadedApk.java:1374)
at android.app.ContextImpl.createAppContext(ContextImpl.java:3324)
at android.app.ContextImpl.createAppContext(ContextImpl.java:3316)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6879)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2236)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
2024-01-30 15:19:53.641 932-932 ziparchive com.xiaojinzi.componentdemo W Unable to open '/data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/base.dm': No such file or directory
2024-01-30 15:19:53.641 932-932 ziparchive com.xiaojinzi.componentdemo W Unable to open '/data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/base.dm': No such file or directory
2024-01-30 15:19:53.725 932-932 i.componentdemo com.xiaojinzi.componentdemo W Failure to verify dex file '/data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/base.apk': Invalid type descriptor: 'Lcom/xiaojinzi/component/impl/application/com.xiaojinzi.component.impl.application.AppModuleAppGenerated;'
2024-01-30 15:19:53.726 932-932 nativeloader com.xiaojinzi.componentdemo D Configuring clns-6 for other apk /data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/base.apk. target_sdk_version=33, uses_libraries=, library_path=/data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/lib/arm64, permitted_path=/data:/mnt/expand:/data/user/0/com.xiaojinzi.componentdemo
2024-01-30 15:19:53.732 932-932 LoadedApk com.xiaojinzi.componentdemo E Unable to instantiate appComponentFactory
java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on path: DexPathList[[zip file "/data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/base.apk"],nativeLibraryDirectories=[/data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/lib/arm64, /system/lib64, /system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.LoadedApk.createAppFactory(LoadedApk.java:273)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:1039)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:1126)
at android.app.LoadedApk.getResources(LoadedApk.java:1374)
at android.app.ContextImpl.createAppContext(ContextImpl.java:3324)
at android.app.ContextImpl.createAppContext(ContextImpl.java:3316)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6879)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2236)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Suppressed: java.io.IOException: Failed to open dex files from /data/data/com.xiaojinzi.componentdemo/code_cache/.overlay/base.apk/classes.dex because: Failure to verify dex file '/data/data/com.xiaojinzi.componentdemo/code_cache/.overlay/base.apk/classes.dex': Invalid type descriptor: 'Lcom/xiaojinzi/component/impl/application/com.xiaojinzi.component.impl.application.AppModuleAppGenerated;'
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:406)
at dalvik.system.DexFile.(DexFile.java:128)
at dalvik.system.DexFile.(DexFile.java:101)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:438)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:387)
at dalvik.system.DexPathList.(DexPathList.java:166)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:160)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:130)
at dalvik.system.PathClassLoader.(PathClassLoader.java:146)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:93)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:134)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:126)
at android.app.ApplicationLoaders.getClassLoaderWithSharedLibraries(ApplicationLoaders.java:61)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:1034)
... 14 more
Suppressed: java.io.IOException: Failed to open dex files from /data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/base.apk because: Failure to verify dex file '/data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/base.apk': Invalid type descriptor: 'Lcom/xiaojinzi/component/impl/application/com.xiaojinzi.component.impl.application.AppModuleAppGenerated;'
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:406)
at dalvik.system.DexFile.(DexFile.java:128)
at dalvik.system.DexFile.(DexFile.java:101)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:438)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:397)
at dalvik.system.DexPathList.(DexPathList.java:166)
2024-01-30 15:19:53.732 932-932 LoadedApk com.xiaojinzi.componentdemo E at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:160)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:130)
at dalvik.system.PathClassLoader.(PathClassLoader.java:146)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:93)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:134)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:126)
at android.app.ApplicationLoaders.getClassLoaderWithSharedLibraries(ApplicationLoaders.java:61)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:1034)
... 14 more
2024-01-30 15:19:53.747 932-932 GraphicsEnvironment com.xiaojinzi.componentdemo V Currently set values for:
2024-01-30 15:19:53.747 932-932 GraphicsEnvironment com.xiaojinzi.componentdemo V angle_gl_driver_selection_pkgs=[]
2024-01-30 15:19:53.747 932-932 GraphicsEnvironment com.xiaojinzi.componentdemo V angle_gl_driver_selection_values=[]
2024-01-30 15:19:53.747 932-932 GraphicsEnvironment com.xiaojinzi.componentdemo V ANGLE GameManagerService for com.xiaojinzi.componentdemo: false
2024-01-30 15:19:53.747 932-932 GraphicsEnvironment com.xiaojinzi.componentdemo V com.xiaojinzi.componentdemo is not listed in per-application setting
2024-01-30 15:19:53.747 932-932 GraphicsEnvironment com.xiaojinzi.componentdemo V Neither updatable production driver nor prerelease driver is supported.
2024-01-30 15:19:53.752 932-932 AndroidRuntime com.xiaojinzi.componentdemo D Shutting down VM
2024-01-30 15:19:53.756 932-932 AndroidRuntime com.xiaojinzi.componentdemo E FATAL EXCEPTION: main
Process: com.xiaojinzi.componentdemo, PID: 932
java.lang.RuntimeException: Unable to instantiate application com.xiaojinzi.componentdemo.App package com.xiaojinzi.componentdemo: java.lang.ClassNotFoundException: Didn't find class "com.xiaojinzi.componentdemo.App" on path: DexPathList[[zip file "/data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/base.apk"],nativeLibraryDirectories=[/data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/lib/arm64, /system/lib64, /system_ext/lib64]]
at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1466)
at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1395)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6959)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2236)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.xiaojinzi.componentdemo.App" on path: DexPathList[[zip file "/data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/base.apk"],nativeLibraryDirectories=[/data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/lib/arm64, /system/lib64, /system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:76)
at android.app.Instrumentation.newApplication(Instrumentation.java:1282)
at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1458)
at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1395)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6959)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2236)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Suppressed: java.io.IOException: Failed to open dex files from /data/data/com.xiaojinzi.componentdemo/code_cache/.overlay/base.apk/classes.dex because: Failure to verify dex file '/data/data/com.xiaojinzi.componentdemo/code_cache/.overlay/base.apk/classes.dex': Invalid type descriptor: 'Lcom/xiaojinzi/component/impl/application/com.xiaojinzi.component.impl.application.AppModuleAppGenerated;'
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:406)
at dalvik.system.DexFile.(DexFile.java:128)
at dalvik.system.DexFile.(DexFile.java:101)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:438)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:387)
at dalvik.system.DexPathList.(DexPathList.java:166)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:160)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:130)
at dalvik.system.PathClassLoader.(PathClassLoader.java:146)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:93)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:134)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:126)
at android.app.ApplicationLoaders.getClassLoaderWithSharedLibraries(ApplicationLoaders.java:61)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:1034)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:1126)
at android.app.LoadedApk.getResources(LoadedApk.java:1374)
at android.app.ContextImpl.createAppContext(ContextImpl.java:3324)
at android.app.ContextImpl.createAppContext(ContextImpl.java:3316)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6879)
... 9 more
2024-01-30 15:19:53.757 932-932 AndroidRuntime com.xiaojinzi.componentdemo E Suppressed: java.io.IOException: Failed to open dex files from /data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/base.apk because: Failure to verify dex file '/data/app/~~MVDzrH2zdX3nOUK1J89c3w==/com.xiaojinzi.componentdemo--kMLM0bJ7BzCZUZqdqonWg==/base.apk': Invalid type descriptor: 'Lcom/xiaojinzi/component/impl/application/com.xiaojinzi.component.impl.application.AppModuleAppGenerated;'
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:406)
at dalvik.system.DexFile.(DexFile.java:128)
at dalvik.system.DexFile.(DexFile.java:101)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:438)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:397)
at dalvik.system.DexPathList.(DexPathList.java:166)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:160)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:130)
at dalvik.system.PathClassLoader.(PathClassLoader.java:146)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:93)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:134)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:126)
at android.app.ApplicationLoaders.getClassLoaderWithSharedLibraries(ApplicationLoaders.java:61)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:1034)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:1126)
at android.app.LoadedApk.getResources(LoadedApk.java:1374)
at android.app.ContextImpl.createAppContext(ContextImpl.java:3324)
at android.app.ContextImpl.createAppContext(ContextImpl.java:3316)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6879)
... 9 more
---------------------------- PROCESS ENDED (932) for package com.xiaojinzi.componentdemo ----------------------------
2024-01-30 15:19:53.773 932-932 Process com.xiaojinzi.componentdemo I Sending signal. PID: 932 SIG: 9
目前还没解决。。。
from component.
补充新结论。 和大佬一样注释掉apply xxx.plugin就好了,加载模块改为反射的方式。 OK了。
from component.
我刚跑了一下, 我这里也出现了, 我这里出错就可以解决了, 等我信
from component.
兄弟们. 破案了. 不知道咋回事, 字节码生成的 ASMUtil 这个类看着没问题, 实则有问题.
我改天用另一种方式生成这个字节码类, 不用最底层的 ASM 了.
一年多没写, 字节码修改的代码都看不懂了。。。
from component.
兄弟们, 问题解决了. 可以拉取 develop 分支最新代码运行.
新版本也发布了 https://github.com/xiaojinzi123/Component/releases/tag/v1.9.5-rc1
from component.
Related Issues (20)
- afterXXXAction的优先级 HOT 5
- 请问下plugin支持增量吗? HOT 2
- 关于跳转到第三方SDK HOT 6
- 依赖高概率的找不到 HOT 4
- Failed to resolve: com.github.xiaojinzi123.Component:component-impl:1.9.2-androidx-java8 HOT 3
- 咨询一下doOpenUri的问题 HOT 1
- 请问Component与ActivityResultContract如何配合使用? HOT 3
- 如何创建并获取一个带参的Service? HOT 1
- 如何判断一个url是否可以跳转? HOT 6
- transformClassesWithComponentPlugin遇到带有签名的JAR时候会报错 HOT 16
- forwardForResult再activity异常destroy后再次调用无效 HOT 2
- 关于Gradle编译优化的提示 HOT 15
- 单 Activity多Fragment 文档不够详情 HOT 1
- 模块和工程大了之后,编译速度特别慢, 是否支持模块化编译aar吗?比如 RocketX HOT 4
- module能否独立运行测试? HOT 2
- 使用com.xiaojinzi.component.plugin 编译报错 HOT 6
- 路由文档有些模块能生成有些不能生成
- 没有IApplicationLifecycle的模块中的ServiceImpl,无法通过ServiceManager.get 获取到
- 1.9.4版本app模块依赖1.9.3版本编译的aar时,路由、服务获取都是null HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from component.