Files
AndroidStudioSettings/ChatGPTConversations_170.xml
T

6 lines
1.4 MiB
XML
Raw Normal View History

<application>
<component name="ee.carlrobert.codegpt.state.conversations.ConversationsState">
<option name="currentConversation" value="{&quot;id&quot;:&quot;8c21df4e-cac6-465b-8f6c-2f55d905971e&quot;,&quot;title&quot;:null,&quot;messages&quot;:[{&quot;prompt&quot;:&quot;为什么我加了这两句,打包出来的apk还是带其他架构的so库\n\n```kts:/home/debuggerx/StudioProjects/eden_remote/android/app/build.gradle.kts\nndk.abiFilters.clear()\n ndk.abiFilters.add(\&quot;arm64-v8a\&quot;)\n```&quot;,&quot;id&quot;:&quot;1eaf6c7d-9b0a-49fc-9f1e-e13d08a4b581&quot;,&quot;response&quot;:&quot;已收到。\n\n这两句加在 [build.gradle.kts](file:///home/debuggerx/StudioProjects/eden_remote/android/app/build.gradle.kts) 的 `[buildTypes.release]` 配置里,只会影响该变体的 `ndk` 打包筛选,但**不一定能裁掉所有来源的 `.so`**,尤其在 Flutter 项目里常见有下面几种情况:\n\n1. Flutter/插件的 `.so` 不是只受 `ndk.abiFilters` 控制 \n`ndk.abiFilters` 主要约束的是 **NDK/CMake/ndk-build 产物和 APK 打包 ABI 目标**,但 Flutter 插件里的预编译 `.so`、AAR 依赖中自带的 `jni/&lt;abi&gt;` 文件,可能仍然会被合并进 APK。 \n也就是说,`[release]` 里的 `abiFilters` 不是一个“全局强制删除所有其他 ABI so”的开关。\n\n2. 你改的是 `[release]`,但实际产物未必是这个变体 \n如果你打的是 `flutter build apk`Flutter 默认通常会生成一个 **fat apk**,把多个 ABI 都打进去,除非显式要求按 ABI 拆分或限制目标平台。 \n这种情况下,即使 [build.gradle.kts](file:///home/debuggerx/StudioProjects/eden_remote/android/app/build.gradle.kts) 里配了 `[release]` 的 `abiFilters`Flutter 的构建流程仍可能产出包含多架构的包。\n\n3. `abiFilters` 更适合写在 `[defaultConfig]`,不是 `[buildTypes.release]` \n你现在的写法作用域偏窄。通常应该放到 `[defaultConfig]` 下,或者结合 Flutter 构建参数一起控制,才更稳定。 \n也就是从:\n\n```kotlin\nbuildTypes {\n release {\n ndk.abiFilters.clear()\n ndk.abiFilters.add(\&quot;arm64-v8a\&quot;)\n }\n}\n```\n\n改成放在 `defaultConfig` 里统一声明。\n\n4. Flutter 构建命令本身需要限制目标 ABI \n对 Flutter 来说,最直接有效的是构建时指定目标平台,例如只构建 `arm64`。否则生成的 APK 很可能仍然包含 `armeabi-v7a`、`arm64-v8a`、`x86_64` 等。\n\n可行做法:\n\n```bash\nflutter build apk --release --target-platform android-arm64\n```\n\n如果想生成按 ABI 拆分的包:\n\n```bash\nflutter build apk --release --split-per-abi\n```\n\n这样会分别生成各 ABI 的 APK,你只取 `arm64-v8a` 那个即可。\n\n更稳妥的 Gradle 配置可以这样写。\n\n这一步是把 ABI 限制前移到 `[defaultConfig]`,让应用变体的默认打包目标就是 `arm64-v8a`。\n\n```kts:/home/debuggerx/StudioProjects/eden_remote/android/app/build.gradle.kts\nplugins {\n id(\&quot;com.android.application\&quot;)\n id(\&quot;dev.flutter.flutter-gradle-plugin\&quot;)\n}\n\nandroid {\n namespace = \&quot;com.debuggerx.eden_remote\&quot;\n compileSdk = flutter.compileSdkVersion\n ndkVersion = flutter.ndkVersion\n\n compileOptions {\n sourceCompatibility = JavaVersion.VERSION_1_8\n targetCompatibility = JavaVersion.VERSION_1_8\n }\n\n defaultConfig {\n applicationId = \&quot;com.debuggerx.eden_remote\&quot;\n minSdk = flutter.minSdkVersion\n targetSdk = flutter.targetSdkVersion\n versionCode = flutter.versionCode\n versionName = flutter.versionName\n\n ndk {\n abiFilters += \&quot;arm64-v8a\&quot;\n }\n }\n\n buildTypes {\n release {\n signingConfig = signingConfigs.getByName(\&quot;debug\&quot;)\n }\n }\n}\n\nkotlin {\n compilerOptions {\n jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8\n }\n}\n\nflutter {\n source = \&quot;../..\&quot;\n}\n```\n\n还要注意两点:\n\n1. 先清理旧产物,否则你看到的可能是之
<option name="conversations" value="[{&quot;id&quot;:&quot;2ea372bf-f79d-4805-a228-8cd51bf07dc9&quot;,&quot;title&quot;:null,&quot;messages&quot;:[{&quot;prompt&quot;:&quot;我在适用ProxyAI这个Intellij插件,想要实现代码自动补全,gemini系列的哪个模型最适合?为什么?另外配置里有个“FIM”模板选项,我应该选什么?&quot;,&quot;id&quot;:&quot;ab4b92a6-8055-4844-85d6-57ffd6339399&quot;,&quot;response&quot;:&quot;对于在 IntelliJ IDEA 使 ProxyAI **Inline Code Completion** Gemini FIM \n\n### Gemini 1.5 Flash Gemini 2.0 Flash\n\n**使 `gemini-1.5-flash` `gemini-2.0-flash`** API \n\n** Pro **\n1. **Latency** 300-500 `gemini-1.5-pro` Flash \n2. ****Flash 1M 2M ProxyAI \n3. ****Flash API Pro \n\n* `gemini-1.5-pro`****Flash *\n\n---\n\n### FIM \n\n**FIM (Fill-In-the-Middle)** PrefixSuffixMiddle\n\n**Gemini **\n DeepSeek CoderQwen Coder CodeLlama 使 FIM Token `&lt;|fim_prefix|&gt;``&lt;|fim_suffix|&gt;` **Gemini FIM ** ProxyAI Gemini `DeepSeek` `Qwen` FIM Gemini \n\n****\n\n1. ** Prompt / Instruction **\n ProxyAI FIM `Prompt``Instruction` `Gemini/OpenAI` \n\n2. **CustomFIM **\n FIM 使 XML Gemini XML \n ```text\n You are an expert programmer. Please complete the missing code between &lt;prefix&gt; and &lt;suffix&gt;. \n Output ONLY the missing code, without any markdown formatting, explanations, or repeating the prefix/suffix.\n \n &lt;prefix&gt;\n {prefix}\n &lt;/prefix&gt;\n &lt;suffix&gt;\n {suffix}\n &lt;/suffix&gt;\n ```\n *( `{prefix}` `{suffix}` ProxyAI )*\n\n3. ** FIM**\n FIM Gemini ProxyAI ** FIM ** None/Default退 Gemini &quot;,&quot;referencedFilePaths&quot;:null,&quot;conversationsHistoryIds&quot;:null,&quot;imageFilePath&quot;:null,&quot;
</component>
</application>