Small
Small copied to clipboard
运行最新的sample出现了问题
错误报告
你做了什么?
运行最新的sample
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'net.wequick.tools.build:gradle-small:1.3.0-beta5'
}
small { buildToAssets = false android { compileSdkVersion = 26 buildToolsVersion = "25.0.2" supportVersion = "25.1.0" aarVersion = '1.3.0-beta5' } } 你期望的结果是什么? 正确运行
实际结果是什么? Process: net.wequick.example.small, PID: 28871 android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment net.wequick.example.small.app.home.MainFragment: make sure class name exists, is public, and has an empty constructor that is public at android.support.v4.app.Fragment.instantiate(Fragment.java:432) at android.support.v4.app.Fragment.instantiate(Fragment.java:400) at net.wequick.small.ApkBundleLauncher.createObject(ApkBundleLauncher.java:1000) at net.wequick.small.Bundle.createObject(Bundle.java:700) at net.wequick.small.Small.createObject(Small.java:351) at net.wequick.small.Small.createObject(Small.java:345) at net.wequick.example.small.app.main.MainActivity$SectionsPagerAdapter.getItem(MainActivity.java:132) at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:101) at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1034) at android.support.v4.view.ViewPager.populate(ViewPager.java:1182) at android.support.v4.view.ViewPager.populate(ViewPager.java:1116) at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1642) at android.view.View.measure(View.java:19913) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6139) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1485) at android.widget.LinearLayout.measureVertical(LinearLayout.java:775) at android.widget.LinearLayout.onMeasure(LinearLayout.java:657) at android.view.View.measure(View.java:19913) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6139) at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:714) at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:786) at android.view.View.measure(View.java:19913) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6139) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139) at android.view.View.measure(View.java:19913) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6139) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1485) at android.widget.LinearLayout.measureVertical(LinearLayout.java:775) at android.widget.LinearLayout.onMeasure(LinearLayout.java:657) at android.view.View.measure(View.java:19913) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6139) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at android.view.View.measure(View.java:19913) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6139) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1485) at android.widget.LinearLayout.measureVertical(LinearLayout.java:775) at android.widget.LinearLayout.onMeasure(LinearLayout.java:657) at android.view.View.measure(View.java:19913) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6139) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at com.android.internal.policy.DecorView.onMeasure(DecorView.java:729) at android.view.View.measure(View.java:19913) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2434) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1480) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1739) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1364) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6757) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:923) at android.view.Choreographer.doCallbacks(Choreographer.java:735) at android.view.Choreographer.doFrame(Choreographer.java:667) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:909) at android.os.Handler.handleCallback(Handler.java:755) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:156) E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6524) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831) E/AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "net.wequick.example.small.app.home.MainFragment" on path: DexPathList[[zip file "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_small_app_detail.so", dir "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_small_app_detail.so", zip file "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_small_appok_if_stub.so", dir "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_small_appok_if_stub.so", zip file "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_small_app_mine.so", dir "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_small_app_mine.so", zip file "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_lib_analytics.so", dir "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_lib_analytics.so", zip file "/data/app/net.wequick.example.small-1/lib/arm/libcom_example_mysmall_lib_style.so", dir "/data/app/net.wequick.example.small-1/lib/arm/libcom_example_mysmall_lib_style.so", zip file "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_small_lib_utils.so", dir "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_small_lib_utils.so", zip file "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_small_app_main.so", dir "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_small_app_main.so", zip file "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_small_app_home.so", dir "/data/app/net.wequick.example.small-1/lib/arm/libnet_wequick_example_small_app_home.so", zip file "/data/app/net.wequick.example.small-1/base.apk", zip file "/data/app/net.wequick.example.small-1/split_lib_dependencies_apk.apk", zip file "/data/app/net.wequick.example.small-1/split_lib_slice_0_apk.apk", zip file "/data/app/net.wequick.example.small-1/split_lib_slice_1_apk.apk", zip file "/data/app/net.wequick.example.small-1/split_lib_slice_2_apk.apk", zip file "/data/app/net.wequick.example.small-1/split_lib_slice_3_apk.apk", zip file "/data/app/net.wequick.example.small-1/split_lib_slice_4_apk.apk", zip file "/data/app/net.wequick.example.small-1/split_lib_slice_5_apk.apk", zip file "/data/app/net.wequick.example.small-1/split_lib_slice_6_apk.apk", zip file "/data/app/net.wequick.example.small-1/split_lib_slice_7_apk.apk", zip file "/data/app/net.wequick.example.small-1/split_lib_slice_8_apk.apk", zip file "/data/app/net.wequick.example.small-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/net.wequick.example.small-1/lib/arm, /system/fake-libs, /data/app/net.wequick.example.small-1/base.apk!/lib/armeabi, /data/app/net.wequick.example.small-1/split_lib_dependencies_apk.apk!/lib/armeabi, /data/app/net.wequick.example.small-1/split_lib_slice_0_apk.apk!/lib/armeabi, /data/app/net.wequick.example.small-1/split_lib_slice_1_apk.apk!/lib/armeabi, /data/app/net.wequick.example.small-1/split_lib_slice_2_apk.apk!/lib/armeabi, /data/app/net.wequick.example.small-1/split_lib_slice_3_apk.apk!/lib/armeabi, /data/app/net.wequick.example.small-1/split_lib_slice_4_apk.apk!/lib/armeabi, /data/app/net.wequick.example.small-1/split_lib_slice_5_apk.apk!/lib/armeabi, /data/app/net.wequick.example.small-1/split_lib_slice_6_apk.apk!/lib/armeabi, /data/app/net.wequick.example.small-1/split_lib_slice_7_apk.apk!/lib/armeabi, /data/app/net.wequick.example.small-1/split_lib_slice_8_apk.apk!/lib/armeabi, /data/app/net.wequick.example.small-1/split_lib_slice_9_apk.apk!/lib/armeabi, /data/user/0/net.wequick.example.small/files/storage/net.wequick.example.small.app.mine/lib/armeabi-v7a, /system/lib, /vendor/lib, /system/vendor/lib, /product/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:380) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) E/AndroidRuntime: at android.support.v4.app.Fragment.instantiate(Fragment.java:422)
我也遇到了同样的问题
我也有这个问题,求作者解决
建议把手机机型提供一下,并且运行./gradlew small 命令输出项目信息。ClassNotFoundException异常一般有下面步骤排查。
- 查看Fatal Runtime Exception日志,查看日志中已经加载的so是否包含你的插件so
- 如果插件so被加载,再确定相应代码已经被编译进插件so中,查看方法很简单,将插件so重命名为apk直接在Android Studio中打开
- 确认是否将插件so正确声明在bundle.json文件中
- 确认该异常类继承的父类或者接口也满足上述几个条件
详细可以查看下面的个人总结: https://ivonhoe.github.io/2018/01/18/Small%E6%A1%86%E6%9E%B6%E5%AE%9E%E8%B7%B5%E6%80%BB%E7%BB%93/
我也遇到此问题了 怎么解决的?