GithubHelp home page GithubHelp logo

yangchong211 / ycapptool Goto Github PK

View Code? Open in Web Editor NEW
3.2K 81.0 746.0 189.24 MB

组件化综合案例,组件分层为:基础公共组件,功能组件,业务组件,主工程。每一层组件的建设,很详细的工程案例,很全面的一个组件化实践案例。一个超级综合案例!

Java 86.12% Kotlin 3.75% CSS 0.21% HTML 0.28% JavaScript 1.34% AIDL 0.01% CMake 0.01% C++ 0.04% C 0.01% Ruby 0.03% Swift 0.01% Objective-C 0.01% Dart 8.18%

ycapptool's Issues

编译报错

Task :app:processDebugResources FAILED
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gs/gs/code/zujianhua/LifeHelper/app/build/intermediates/packaged_manifests/debug/AndroidManifest.xml","position":{"startLine":26}}],"original":"/Users/gs/gs/code/zujianhua/LifeHelper/app/build/intermediates/packaged_manifests/debug/AndroidManifest.xml:27: AAPT: error: unexpected element found in .\n ","tool":"AAPT"}

功能还没有完全开发完全

您好,我发现你项目很多功能,还没完善好的,不知道会不会继续完善,实现那些没开发好的功能,期待下一个版本学习。

build问题怎么解决

Error:A problem occurred configuring project ':app'.

Could not resolve all dependencies for configuration ':app:_debugApk'.
Could not determine artifacts for io.realm:realm-android-library:3.3.2
> Could not get resource 'https://jcenter.bintray.com/io/realm/realm-android-library/3.3.2/realm-android-library-3.3.2.aar'.
> Could not HEAD 'https://jcenter.bintray.com/io/realm/realm-android-library/3.3.2/realm-android-library-3.3.2.aar'.
> Software caused connection abort: recv failed

There is no route match the path [/other/xxx], in group [other][ ]

您好,本人刚入门组件化,可能也不太懂哈,项目跑起来后点击妹子画廊、抽奖相关的就会报这个错,然后发现是other模块没有生成相应的IRouteGroup文件。从ARouter的Issues找了下问题,大概是没有配置好ARouter,看了一下other的build.gradle的ARouter配置是kotlin的,把这行 annotationProcessor rootProject.ext.dependencies["router-compiler"] 给注掉了,改成 kapt 'com.alibaba:arouter-compiler:1.2.2' 就好了,下载的apk没问题,不知道是我哪里配置的不对。

关于解决【4.6 存在待解决问题】的建议

@yangchong211 你好,我是开源库CC的作者,也是组件化技术的爱好者,今天(19.02.21)在掘金上从你的文章ARouter路由解析中进入到你的github主页,从而发现了这个项目,在阅读README的过程中看到4.6 存在待解决问题提出的问题,正好可以提供点建议,所以冒昧前来交流一下:

第一个建议是:开始使用arouter-register插件

由于本项目的组件化引擎是ARouter,从1.3.1版本开始使用了我PR的自动注册插件arouter-register替代dex扫描来完成路由表的跨module注册以提高初始化性能并解决apk加固的兼容性问题。不过貌似本项目目前并未使用arouter-reigister插件

第二个建议是:用AutoRegister插件代替arouter-register插件来解决问题

arouter-register插件是在AutoRegister插件的基础上ARouter定制的简化版本,只完成了路由表相关的3个接口实现类的自动注册,其好处是不需要用户手动配置扫描规则
AutoRegister插件是一个与具体业务无关的功能性框架,根据配置的规则,使用ASM来扫描字节码并生成注册代码。
所以,我们可以为AutoRegister插件配置ARouter的扫描需求,并额外通过增加配置来完成【4.6 存在待解决问题】中的需求,具体配置方法见AutoRegister文档

也可以参考这篇文章来配置,还需要仿照ARouter里LogisticsCenter的写法,在MyApplication中提供2个生成自动注册代码所需要的方法

以上,即可实现【4.6 存在待解决问题】中的需求

很高兴在你的文章里关于跨进程解决思路相关描述中提到了CC,CC在2.0版本之前确实使用的是BroadcastReceiver + Service + LocalSocket的方案来实现跨app组件调用。

2018年9月份CC进入了2.0时代,重构了跨进程通信机制和自动注册插件,新版本框架底层使用了ContentProvider + AIDL来实现跨进程(包括App内部可跨App)的组件调用

欢迎前来围观: https://github.com/luckybilly/CC

另外,由于CC是基于组件调用而非路由跳转来实现组件之间通信的,不需要繁琐的onActivityResult,也就能避免README中4.7 组件化中Fragment通信难点这个章节中提到的Fragment回调问题

以上!

编译遇到问题

  • What went wrong:
    A problem occurred evaluating project ':library'.

Could not get unknown property 'rootproject' for object of type com.android.build.gradle.LibraryExtension.

导入项目报错

AGPBI: {"kind":"error","text":"No resource identifier found for attribute \u0027appComponentFactory\u0027 in package \u0027android\u0027","sources":[{"file":"\\?\F:\MyProject\Open\LifeHelper\app\build\intermediates\manifests\full\debug\AndroidManifest.xml","position":{"startLine":37}}],"original":"","tool":"AAPT"}

依赖哪里冲突了?

Caused by: com.android.tools.r8.errors.CompilationError: Program type already present: com.yc.statusbar.BuildConfig
at com.android.tools.r8.utils.ProgramClassCollection.resolveClassConflictImpl(ProgramClassCollection.java:64)
at com.android.tools.r8.utils.ProgramClassCollection.lambda$create$0(ProgramClassCollection.java:25)
at com.android.tools.r8.utils.ProgramClassCollection.create(ProgramClassCollection.java:24)
at com.android.tools.r8.graph.LazyLoadedDexApplication$Builder.build(LazyLoadedDexApplication.java:124)
at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:123)
at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:86)
at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:40)
at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:110)
at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:83)

Glide版本不一致问题

应用:api 'com.github.bumptech.glide:glide:4.7.1'
与全局的glideSdkVersion : "4.9.0",
这两个版本会不兼容,会导致编译时一些类或者方法找不到的问题

奔溃

Caused by: io.realm.exceptions.RealmException: CacheHomeNews is not part of the schema for this Realm
at io.realm.internal.modules.CompositeMediator.getMediator(CompositeMediator.java:181)
at io.realm.internal.modules.CompositeMediator.getSimpleClassNameImpl(CompositeMediator.java:99)
at io.realm.internal.RealmProxyMediator.getSimpleClassName(RealmProxyMediator.java:72)
at io.realm.RealmSchema.getTable(RealmSchema.java:177)
at io.realm.RealmSchema.getSchemaForClass(RealmSchema.java:200)
at io.realm.RealmQuery.(RealmQuery.java:154)
at io.realm.RealmQuery.createQuery(RealmQuery.java:93)
at io.realm.Realm.where(Realm.java:1431)
at com.ns.yc.lifehelper.ui.guide.presenter.GuidePresenter.cacheHomeNews(GuidePresenter.java:214)
at com.ns.yc.lifehelper.ui.guide.presenter.GuidePresenter.cacheHomeNewsData(GuidePresenter.java:114)
at com.ns.yc.lifehelper.ui.guide.view.activity.GuideActivity.initData(GuideActivity.java:104)
at com.ycbjie.library.base.mvp.BaseActivity.onCreate(BaseActivity.java:46)
at android.app.Activity.performCreate(Activity.java:6807)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2753)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2861) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1584) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6321) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:939) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:829) 

unable to upload to android studio emulator on MAC

Firstly,
it indicates like:
“Device supports x86, but APK only supports armeabi-v7a”
So, according to Stackoverflow question suggested, I comment out

  ndk {  abiFilters "armeabi", "armeabi-v7a" //, "x86", "mips"   }

The app has been uploaded to emulator but crashed.

关于Presenter问题

目前查看代码,BaseActivityBaseFragment 中发现全局变量 mPresenter 一直为NULL,子类中并没有进行实例化

编译出错

release\dataBindingGenBaseClassesRelease\out\com\yc\todoappmvvm\databinding\TaskItemBinding.java:67: 错误: 找不到符

public static TaskItemBinding bind(@nonnull View view, @nullable DataBindingComponent component) {
^
符号: 类 DataBindingComponent
位置: 类 TaskItemBinding
错误: 服务配置文件不正确, 或构造处理程序对象javax.annotation.processing.Processor: android.databinding.annotationprocess
or.ProcessDataBinding Unable to get public no-arg constructor时抛出异常错误
28 个错误

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.