Be honest rather clever.
诚实比聪明更要紧。
fluttercontactpicker: ^2.0.0 通讯录插件使用异常
android Attempt to invoke virtual method 'android.content.ContentResolver android.content.Context.getContentResolver()' on a null object reference
解决方案:
Flutter SDK 版本更新到最新
如果用命令更新失败,那么可以直接下载sdk压缩包进行解压后替换以前原有的sdk.
io.flutter.embedding.engine.FlutterEngine@7bd534e
W/FlutterEnginePluginRegistry( 4322): Attempted to register plugin (io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry$ShimRegistrarAggregate@d001e49) but it was already registered with this Flutte rEngine (io.flutter.embedding.engine.FlutterEngine@7bd534e). 大概意思:早注册了FlutterEngine
解决方案:
删除 GeneratedPluginRegistrant.registerWith(flutterEngine);
Xcode The sandbox is not in sync with the Podfile.lock.
The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
解决方案:
Android Studio 执行命令flutter build ios
Cannot fit requested classes in a single dex file (# methods: 68807 > 65536)
Running Gradle task 'assembleDebug'... D8: Cannot fit requested classes in a single dex file (# methods: 68807 > 65536) com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K.
D8: Cannot fit requested classes in a single dex file (# methods: 65671 > 65536) com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:132) at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:119) at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:102) at com.android.build.gradle.internal.tasks.DexMergingTaskRunnable.run(DexMergingTask.kt:445) at com.android.build.gradle.internal.tasks.Workers$ActionFacade.run(Workers.kt:348) at org.gradle.workers.internal.AdapterWorkAction.execute(AdapterWorkAction.java:50) at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:47) at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:65) at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:61) at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:98) at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.execute(NoIsolationWorkerFactory.java:61) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41) at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416) at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406) at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102) at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36) at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41) at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:56) at org.gradle.workers.internal.DefaultWorkerExecutor$3.call(DefaultWorkerExecutor.java:215) at org.gradle.workers.internal.DefaultWorkerExecutor$3.call(DefaultWorkerExecutor.java:210) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) at java.lang.Thread.run(Thread.java:748) Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete at com.android.tools.r8.utils.O.a(:65) at com.android.tools.r8.D8.run(:11) at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:117) ... 34 more Caused by: com.android.tools.r8.utils.b: Error: null, Cannot fit requested classes in a single dex file (# methods: 65671 > 65536) at com.android.tools.r8.utils.y0.a(:21) at com.android.tools.r8.dex.K.a(:56) at com.android.tools.r8.dex.K$h.a(:5) at com.android.tools.r8.dex.b.b(:15) at com.android.tools.r8.dex.b.a(:38) at com.android.tools.r8.D8.d(:87) at com.android.tools.r8.D8.b(:1) at com.android.tools.r8.utils.O.a(:30) ... 36 more FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:mergeDexDebug'. > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org
解决方案:参考
build.gradle下配置修改
defaultConfig { ...... multiDexEnabled true ...... }
dependencies { ...... implementation 'com.android.support:multidex:1.0.3' ...... }
Attribute provider#androidx.core.content.FileProvider@authorities
Attribute meta-data#android.support.FILE_PROVIDER_PATHS@resource value=(@xml/file_paths)
Attribute provider#androidx.core.content.FileProvider@authorities value=(com.android.demo.fileProvider) from AndroidManifest.xml:58:13-64 is also present at [:flutter_webview_plugin] AndroidManifest.xml:11:13-64 value=(com.android.demo.fileprovider). Suggestion: add 'tools:replace="android:authorities"' to
element at AndroidManifest.xml to override. Attribute meta-data#android.support.FILE_PROVIDER_PATHS@resource value=(@xml/file_paths) from AndroidManifest.xml:53:17-55 is also present at [:flutter_webview_plugin] AndroidManifest.xml:17:17-50 value=(@xml/filepaths). Suggestion: add 'tools:replace="android:resource"' to
element at AndroidManifest.xml to override. 解决方案:
The overflowing RenderFlex has an orientation of Axis.vertical.
e.g. using an Expanded widget@override Widget build(BuildContext context) { ScreenUtil.init(context, width: 750, height: 1624, allowFontScaling: true); return Scaffold( backgroundColor: scaffoldBackColor(), body: isSv ? getBaseViewNoSv(context) : getBaseView(context), ); }
I/flutter (26133): The overflowing RenderFlex has an orientation of Axis.vertical. I/flutter (26133): The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and I/flutter (26133): black striped pattern. This is usually caused by the contents being too big for the RenderFlex. I/flutter (26133): Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the I/flutter (26133): RenderFlex to fit within the available space instead of being sized to their natural size. I/flutter (26133): This is considered an error condition because it indicates that there is content that cannot be I/flutter (26133): seen. If the content is legitimately bigger than the available space, consider clipping it with a I/flutter (26133): ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex, I/flutter (26133): like a ListView. I/flutter (26133): The specific RenderFlex in question is: RenderFlex#c0a57 relayoutBoundary=up3 OVERFLOWING: I/flutter (26133): needs compositing I/flutter (26133): creator: Column ← _PointerListener ← Listener ← _GestureSemantics ← RawGestureDetector ← I/flutter (26133): GestureDetector ← _BodyBuilder ← MediaQuery ← LayoutId-[<_ScaffoldSlot.body>] ← I/flutter (26133): CustomMultiChildLayout ← AnimatedBuilder ← DefaultTextStyle ← ⋯ I/flutter (26133): parentData:
(can use size) I/flutter (26133): constraints: BoxConstraints(0.0<=w<=411.4, 0.0<=h<=441.5) I/flutter (26133): size: Size(411.4, 441.5) I/flutter (26133): direction: vertical I/flutter (26133): mainAxisAlignment: start I/flutter (26133): mainAxisSize: max I/flutter (26133): crossAxisAlignment: center I/flutter (26133): verticalDirection: down I/flutter (26133): ◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤ 解决方案 :
resizeToAvoidBottomPadding: false
@override Widget build(BuildContext context) { ScreenUtil.init(context, width: 750, height: 1624, allowFontScaling: true); return Scaffold( backgroundColor: scaffoldBackColor(), resizeToAvoidBottomPadding: false, body: isSv ? getBaseViewNoSv(context) : getBaseView(context), ); }
AnimationControllers should be disposed by calling dispose() on the AnimationController itself.
class CurWidget extends StatefulWidget { @override State
createState() => CurWidgetState(); } class CurWidgetState extends State with TickerProviderStateMixin { AnimationController controller; Animation animation; @override void initState() { // TODO: implement initState super.initState(); controller = AnimationController(duration: const Duration(seconds: 4), vsync: this); animation = Tween(begin: 0.0, end: 1.0).animate(controller); animation.addStatusListener((status) { if (status == AnimationStatus.completed) { ///评估完成 } }); controller.forward(); } @override Widget build(BuildContext context) { return Column( children: [ Padding( padding: ViewUtils.mp(20.0, 20.0, 20.0, 20.0), child: Image.asset(R.assetsImgIcEvaluateProcessTop), ), ViewUtils.commTextEll( '额度评估中……', 0xff000000, 16.0, FontWeight.normal, TextAlign.center), Container( padding: ViewUtils.mp(0.0, 20.0, 0.0, 40.0), child: RotationTransition( //设置动画的旋转中心 alignment: Alignment.center, //动画控制器 turns: animation, //将要执行动画的子view child: Image.asset( R.assetsImgIcEvaluateProgressAnimation, alignment: Alignment.center, ), ), ), ], ); } @override void dispose() { // TODO: implement dispose super.dispose(); if (controller != null) { controller.dispose(); } } } Reloaded 0 of 947 libraries in 1,515ms. I/chatty ( 9839): uid=10133(com.example.market) 1.ui identical 2 lines I/flutter ( 9839): AppInfo v TopBannerWidget_build I/flutter ( 9839): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════ I/flutter ( 9839): The following assertion was thrown while finalizing the widget tree: I/flutter ( 9839): EvaProWidgetState#0f3c5(tickers: tracking 1 ticker) was disposed with an active Ticker. I/flutter ( 9839): EvaProWidgetState created a Ticker via its TickerProviderStateMixin, but at the time dispose() was I/flutter ( 9839): called on the mixin, that Ticker was still active. All Tickers must be disposed before calling I/flutter ( 9839): super.dispose(). I/flutter ( 9839): Tickers used by AnimationControllers should be disposed by calling dispose() on the I/flutter ( 9839): AnimationController itself. Otherwise, the ticker will leak. I/flutter ( 9839): The offending ticker was: I/flutter ( 9839): _WidgetTicker(created by EvaProWidgetState#0f3c5(lifecycle state: created, tickers: tracking 0 I/flutter ( 9839): tickers)) I/flutter ( 9839): The stack trace when the _WidgetTicker was actually created was:
解决方案
@override void dispose() { // TODO: implement dispose if (controller != null) { controller.dispose(); } super.dispose(); }
pull_to_refresh
No named parameter with the name 'keyboardDismissBehavior'
解决方案