无名小姐

Results 16 comments of 无名小姐

很抱歉那么久才回复你,我一直在找原因,我把你的项目clone下来是可以运行的,设置主题也是生效的,但是我把你的项目模块化集成到我的项目中后设置主题好像没有生效,不知道是什么原因,其中StubActivity中的主题是可以生效的,但是继承AppCompatActivity的StubAppCompatActivity的主题好像没有生效 还是报错View class com.google.android.material.button.MaterialButton is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant). 和 android.view.InflateException: Binary XML file line #25 in com.malin.plugin:layout/plugin_activity: Binary XML...

https://github.com/androidmalin/AndroidComponentPlugin/assets/41316730/d5288879-69d4-45c6-8daa-b239b3d8a1dd

我没有改动你的代码,只是把你的项目作为模块化导入我的项目了,他确实是以插件化运行的, 但是报错在AppCompatActivity这个报错了,我怀疑LayoutInflater.from(mContext).inflate(R.layout.plugin_activity, null) 查找material的控件没有找到 测试普通Button控件是可以正常运行的

呃,我觉得我还没那种小白到那种程度😥

我好像找到原因了,就是你的项目中反射设置主题好像没有生效,反射设置的主题是宿主自身的主题,而不是插件的主题,然而在插件中我们又用的是插件中的资源,在你的项目中我反编译看了打包后的源码,可以看出插件和宿主两个的style是一样的资源id,所以我们在宿主中反射设置插件的主题,刚好巧合的对上了插件自生的主题样式id,这样在插件中 LayoutInflater.from(mContext).inflate(R.layout.plugin_activity, null)也不会报错 ` private fun selectSystemTheme(): Int { val targetSdkVersion: Int = Build.VERSION.SDK_INT val theme: Int = when { targetSdkVersion < 24 -> R.style.Theme_Wumin else ->R.style.Theme_Wumin } return theme...

找到了问题所在了,还是资源问题,插件中加载了宿主的类,但是资源又是插件自身的,主要还是插件的类和宿主的类的资源id不一样,

我也没有解决😭😭😭 主要是我的项目引入了很多包,as编译后,资源id就对不上了,像你的那个简单的例子的话宿主和插件资源id就是一样的,然后就能正常找到,

勉强解决问题 目前使用的是通过资源合并方式 好像高版本才行

CMake Error at samples/android/15-puzzle/CMakeLists.txt:3 (add_android_project): Unknown CMake command "add_android_project". -- Configuring incomplete, errors occurred! See also "/data/data/com.termux/files/home/node_modules/opencv-build/opencv/build/CMakeFiles/CMakeOutput.log". See also "/data/data/com.termux/files/home/node_modules/opencv-build/opencv/build/CMakeFiles/CMakeError.log". ERR! child process exited with code 1 (for more info,...