{
    "componentChunkName": "component---src-templates-blog-post-jsx",
    "path": "/posts/2020/02/10/flutter-an-zhuang-ji-lu/",
    "result": {"data":{"site":{"siteMetadata":{"siteUrl":"https://codeand.fun"}},"mdx":{"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Flutter 安装记录\",\n  \"date\": \"2020-02-10T17:42:33.000Z\",\n  \"tags\": [\"Flutter\", \"踩坑记录\"],\n  \"categories\": [\"Blog\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", null, \"\\u8D77\\u56E0\"), mdx(\"p\", null, \"\\u6700\\u8FD1\\u60F3\\u5F00\\u59CB\\u5199\\u65E5\\u8BB0\\u4E86\\uFF0C\\u4F46\\u662F\\u627E\\u4E86\\u4E00\\u5708\\u53D1\\u73B0\\u597D\\u50CF\\u597D\\u7528\\u53C8\\u5B89\\u5168\\u7684App\\u51E0\\u4E4E\\u6CA1\\u6709\\uFF0C\\u4E3B\\u8981\\u662F\\u6015\\u4E0D\\u5B89\\u5168\\u3002\\u5F88\\u591AApp\\u662F\\u4E0D\\u652F\\u6301\\u5BFC\\u51FA\\u4EC0\\u4E48\\u7684,\\u800C\\u4E14\\u5B58\\u5728\\u522B\\u4EBA\\u7684\\u670D\\u52A1\\u5668\\u4E0A\\u603B\\u611F\\u89C9\\u4E0D\\u597D\\uFF0C\\u8981\\u662F\\u516C\\u53F8\\u5012\\u95ED\\u4E86\\uFF0C\\u6211\\u4EEC\\u7684\\u65E5\\u8BB0\\u5C82\\u4E0D\\u662F\\u5168\\u6CA1\\u6709\\uFF0C\\u5C31\\u7B97\\u6709\\u5BFC\\u51FA\\u529F\\u80FD\\uFF0C\\u8981\\u8FC1\\u79FB\\u5230\\u53E6\\u4E00\\u4E2AApp\\u4E0A\\u597D\\u50CF\\u4E5F\\u662F\\u5F88\\u9EBB\\u70E6\\u7684\\u6837\\u5B50\\u3002\\u800C\\u90A3\\u4E9B\\u652F\\u6301\\u4FDD\\u5B58\\u5230Webdev\\u4E0A\\u57FA\\u672C\\u662F\\u4E0D\\u52A0\\u5BC6\\u7684\\uFF0C\\u4E5F\\u5F88\\u5371\\u9669\\u554A\\u3002Whatever\\uFF0C\\u6211\\u73B0\\u5728\\u6709\\u70B9\\u60F3\\u505A\\u4E00\\u4E2A\\u79FB\\u52A8\\u7AEF\\u7684\\u4E1C\\u897F\\uFF0C\\u4E5F\\u5C31\\u662F\\u65E5\\u8BB0\\u672C\\u3002\"), mdx(\"p\", null, \"\\u8C03\\u7814\\u4E86\\u4E00\\u5708\\uFF0C\\u79FB\\u52A8\\u7AEF\\u57FA\\u672C\\u4E0A\\u6709\\u4E09\\u79CD\\u9009\\u62E9\\uFF1A\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Java + Android\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"React Native\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Flutter \")), mdx(\"p\", null, \"\\u4E09\\u8005\\u4E4B\\u4E2D\\uFF0CJava + Android \\u5E94\\u8BE5\\u662F\\u6700\\u7A33\\u7684\\uFF0C\\u6BD5\\u7ADF\\u6709\\u70B9 Java \\u57FA\\u7840\\uFF1BReact Native \\u5E94\\u8BE5\\u662F\\u6700\\u7406\\u60F3\\u7684\\uFF0C\\u56E0\\u4E3A\\u5F88\\u5BB9\\u6613\\u5C31\\u8FC1\\u79FB\\u5230\\u7F51\\u9875\\u4E0A\\u554A\\uFF1BFlutter \\u5E94\\u8BE5\\u7B97\\u662F\\u4E00\\u4E2A\\u6BD4\\u8F83\\u6FC0\\u8FDB\\u7684\\u505A\\u6CD5\\u4E86\\uFF0C\\u6BD4\\u8F83\\u65B0\\u6280\\u672F\\uFF0C\\u6709\\u8BB8\\u591A\\u5751\\uFF0C\\u4E0D\\u8FC7\\u73B0\\u5728\\u5E94\\u8BE5\\u8FD8\\u662F\\u7B97\\u633A\\u591A\\u4EBA\\u5728\\u7528\\u4E86\\u3002\\u4F5C\\u4E3A\\u4E00\\u4E2A\\u6709\\u5FD7\\u5411\\u7684\\u5F00\\u53D1\\u8005\\uFF0C\\u8E29\\u5751\\u624D\\u662F\\u6700\\u597D\\u73A9\\u7684\\u4E8B\\u60C5\\u554A\\u3002whatever\\uFF0C\\u6211\\u89C9\\u5F97\\u7528 Flutter \\u6765\\u5B9E\\u73B0\\u8FD9\\u4E2A\\u4E1C\\u897F\\u4E86\\u3002BTW\\uFF0C\\u5199\\u8FD9\\u7BC7\\u4E1C\\u897F\\u4E00\\u65B9\\u9762\\u662F\\u4E3A\\u4E86\\u8BB0\\u5F55\\u5B89\\u88C5\\u4E2D\\u9047\\u5230\\u7684\\u5751\\uFF0C\\u53E6\\u4E00\\u65B9\\u9762\\u4E5F\\u662F\\u7ACBFlag\\uFF08\\u6342\\u8138\\uFF09\\u3002\"), mdx(\"h2\", null, \"\\u5B89\\u88C5 Flutter\"), mdx(\"p\", null, \"\\u6211\\u4F7F\\u7528\\u7684\\u73AF\\u5883\\u662F Manjaro Linux\\uFF0C\\u6240\\u4EE5\\u53EF\\u4EE5\\u4E0D\\u6309\\u7167\\u5B98\\u7F51\\u4E0A\\u7684\\u65B9\\u6CD5\\u4E0B\\u8F7D\\u5305\\u7136\\u540E\\u5B89\\u88C5\\uFF0C\\u76F4\\u63A5\\uFF1A\"), mdx(\"div\", {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"bash\"\n  }, mdx(\"pre\", {\n    parentName: \"div\",\n    \"className\": \"language-bash\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token function\"\n  }, \"sudo\"), \" pacman -S flutter\"))), mdx(\"p\", null, \"\\u5B89\\u88C5\\u5B8C\\u540E\\u663E\\u793A\\u4E0B\\u9762\\u8FD9\\u4E2A\\u4E1C\\u897F\\uFF0C\\u53EA\\u9700\\u8981\\u6309\\u7167\\u4ED6\\u8FD9\\u91CC\\u8BF4\\u660E\\u7684\\u8FDB\\u884C\\u4E00\\u4E9B\\u914D\\u7F6E\\u5373\\u53EF\\u3002\\u6709\\u4E00\\u70B9\\u8981\\u6CE8\\u610F\\u7684\\u662F\\uFF0C\\u8FD9\\u4E9B\\u547D\\u4EE4\\u5168\\u90E8\\u90FD\\u9700\\u8981 root \\u6743\\u9650\\uFF0C\\u5373\\u5728\\u547D\\u4EE4\\u524D\\u9762\\u52A0 sudo \\u5373\\u53EF\\u3002\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"https://imagehosting.wuxiaobai24.fun/blogFlutter-%E5%AE%89%E8%A3%85%E8%AE%B0%E5%BD%95-20200210175913-2020-2-10\",\n    \"alt\": \"安装Flutter后的输出\"\n  })), mdx(\"p\", null, \"\\u57FA\\u672C\\u4E0A\\u5C31\\u5B89\\u88C5\\u6210\\u529F\\u4E86\\uFF0C\\u53EF\\u4EE5\\u6309\\u7167\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"flutter.cn\"), \"\\u4E2D\\u7ED9\\u51FA\\u7684\\u5B89\\u88C5\\u6559\\u7A0B\\u4E00\\u6B65\\u6B65\\u8D70\\u5373\\u53EF\\u3002\"), mdx(\"h2\", null, \"\\u56FD\\u60C5\\u5E26\\u6765\\u7684\\u5751\"), mdx(\"p\", null, \"\\u5728\\u7B2C\\u4E00\\u6B21\\u8FD0\\u884C\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"flutter doctor\"), \"\\u4E4B\\u524D\\u8BB0\\u5F97\\u628A\\u955C\\u50CF\\u6E90\\u914D\\u7F6E\\u597D\\uFF0C\\u8FD9\\u91CC\\u53EF\\u4EE5\\u53C2\\u8003\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"https://flutter.dev/community/china\",\n    \"alt\": \"官方文档\"\n  }), \"\\uFF1A\"), mdx(\"div\", {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"bash\"\n  }, mdx(\"pre\", {\n    parentName: \"div\",\n    \"className\": \"language-bash\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token builtin class-name\"\n  }, \"export\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token assign-left variable\"\n  }, \"FLUTTER_STORAGE_BASE_URL\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"=\"), \"https://mirrors.tuna.tsinghua.edu.cn/flutter\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token builtin class-name\"\n  }, \"export\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token assign-left variable\"\n  }, \"PUB_HOSTED_URL\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"=\"), \"https://mirrors.tuna.tsinghua.edu.cn/dart-pub\"))), mdx(\"p\", null, \"\\u7136\\u540E\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gradle\"), \"\\u4E5F\\u6709\\u4E00\\u4E2A\\u955C\\u50CF\\u6E90\\u9700\\u8981\\u914D\\u7F6E\\uFF1A\"), mdx(\"p\", null, \"\\u4E00\\u4E2A\\u662F\\u9879\\u76EE\\u4E2D\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"android/gradle/build.gradle\"), \":\"), mdx(\"div\", {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"groovy\"\n  }, mdx(\"pre\", {\n    parentName: \"div\",\n    \"className\": \"language-groovy\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-groovy\"\n  }, \"buildscript \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n    ext\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \".\"), \"kotlin_version \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"=\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'1.3.50'\"), \"\\n    repositories \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n        \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// google()\"), \"\\n        \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// jcenter()\"), \"\\n        maven \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \" url \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'https://maven.aliyun.com/repository/google'\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n        maven \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \" url \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'https://maven.aliyun.com/repository/jcenter'\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n        maven \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \" url \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'http://maven.aliyun.com/nexus/content/groups/public'\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\\n    dependencies \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n        classpath \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'com.android.tools.build:gradle:3.5.0'\"), \"\\n        classpath \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string gstring\"\n  }, \"\\\"org.jetbrains.kotlin:kotlin-gradle-plugin:\", mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"token expression\"\n  }, mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"token punctuation\"\n  }, \"$\"), \"kotlin_version\"), \"\\\"\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\\nallprojects \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n    repositories \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n        \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// google()\"), \"\\n        \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// jcenter()\"), \"\\n        maven \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \" url \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'https://maven.aliyun.com/repository/google'\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n        maven \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \" url \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'https://maven.aliyun.com/repository/jcenter'\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n        maven \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \" url \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'http://maven.aliyun.com/nexus/content/groups/public'\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\")))), mdx(\"p\", null, \"\\u8FD8\\u662F\\u6709\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"/opt/flutter/packags/flutter_tools/gradle/flutter.gradle\")), mdx(\"div\", {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"groovy\"\n  }, mdx(\"pre\", {\n    parentName: \"div\",\n    \"className\": \"language-groovy\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-groovy\"\n  }, \"buildscript \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n    repositories \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n        \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// google()\"), \"\\n        \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// jcenter()\"), \"\\n        \\n        maven \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \" url \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'https://plugins.gradle.org/m2/'\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n        maven \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \" url \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'http://maven.aliyun.com/nexus/content/repositories/google'\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n        maven \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \" url \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'http://maven.aliyun.com/nexus/content/groups/public/'\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n        maven \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \" url \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'http://maven.aliyun.com/nexus/content/repositories/jcenter'\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\")))));\n}\n;\nMDXContent.isMDXComponent = true;","excerpt":"起因 最近想开始写日记了，但是找了一圈发现好像好用又安全的App几乎没有，主要是怕不安全。很多App…","frontmatter":{"title":"Flutter 安装记录","tags":["Flutter","踩坑记录"],"date":"2020-02-10T17:42:33.000Z","categories":["Blog"]},"fields":{"slug":"/posts/2020/02/10/flutter-an-zhuang-ji-lu/"}}},"pageContext":{"slug":"/posts/2020/02/10/flutter-an-zhuang-ji-lu/"}},
    "staticQueryHashes": ["163584858","1656825683","63159454"]}