Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

已知问题:IDE中直接Run sample-host会失败 #1263

Open
shifujun opened this issue Dec 5, 2023 · 1 comment
Open

已知问题:IDE中直接Run sample-host会失败 #1263

shifujun opened this issue Dec 5, 2023 · 1 comment
Labels
PR welcome 欢迎贡献代码

Comments

@shifujun
Copy link
Collaborator

shifujun commented Dec 5, 2023

临时兼容手段:./gradlew :sample-host:installDebug

google开发者的意思是IDE中点Run按钮构建的apk是针对Run选择的机型构建的,把这个apk直接放到output目录中,会让人误以为这个apk是不区分机型的构建。所以这是个bug。修复方案就是点Run构建的apk不放到output目录。

我们这个项目并不涉及这个问题。我们只是想让sample-host构建自动触发sample-app等plugin的apk构建,然后拿到apk打包成插件包,自动放到host的asset中。这样开发shadow时,修改了代码一键运行host,方便开发调试。

现在我们代码是写死的output目录路径。如果要检测是Run构建的,还是assemble任务构建的,一时还没有好办法。这里主要是涉及两边如果都构建过,哪个是新的。初步看应该是从apk_ide_redirect_file的记录确定。

总之这个开发还比较费事,先置顶个issue吧。

          这个AGP 7.1带来了一个很麻烦的变动。在Android Studio中运行assemble任务,apk文件会生成在`build/intermediates/apk`目录中。直接在命令行运行同一个assemble任务却会像以前一样生成到`build/outputs/apk`中。

          这使得在IDE中直接运行`sample-host`和在命令行中运行`./gradlew :sample-host:assembleDebug`,需要两种不同的复制插件apk路径。

          😞 😞 😞 😞 😞

Originally posted by @shifujun in #799 (comment)

          https://developer.android.google.cn/studio/releases/fixed-bugs/studio/2021.1.1?hl=zh-cn

          [问题 69014026](https://issuetracker.google.com/issues/69014026?hl=zh-cn)
          将部署 build 输出移至 intermediates 文件夹

          我看这里标记了一个`AGP-7.2 Beta`版本,我就先不深究到底是修复了还是怎么样,等7.2出了再试试看吧。

Originally posted by @shifujun in #799 (comment)

@shifujun shifujun pinned this issue Dec 5, 2023
@shifujun shifujun added the PR welcome 欢迎贡献代码 label Dec 5, 2023
@Heart-Beats
Copy link

临时兼容手段:./gradlew :sample-host:installDebug

google开发者的意思是IDE中点Run按钮构建的apk是针对Run选择的机型构建的,把这个apk直接放到output目录中,会让人误以为这个apk是不区分机型的构建。所以这是个bug。修复方案就是点Run构建的apk不放到output目录。

我们这个项目并不涉及这个问题。我们只是想让sample-host构建自动触发sample-app等plugin的apk构建,然后拿到apk打包成插件包,自动放到host的asset中。这样开发shadow时,修改了代码一键运行host,方便开发调试。

现在我们代码是写死的output目录路径。如果要检测是Run构建的,还是assemble任务构建的,一时还没有好办法。这里主要是涉及两边如果都构建过,哪个是新的。初步看应该是从apk_ide_redirect_file的记录确定。

总之这个开发还比较费事,先置顶个issue吧。

          这个AGP 7.1带来了一个很麻烦的变动。在Android Studio中运行assemble任务,apk文件会生成在`build/intermediates/apk`目录中。直接在命令行运行同一个assemble任务却会像以前一样生成到`build/outputs/apk`中。

          这使得在IDE中直接运行`sample-host`和在命令行中运行`./gradlew :sample-host:assembleDebug`,需要两种不同的复制插件apk路径。

          😞 😞 😞 😞 😞

Originally posted by @shifujun in #799 (comment)

          https://developer.android.google.cn/studio/releases/fixed-bugs/studio/2021.1.1?hl=zh-cn

          [问题 69014026](https://issuetracker.google.com/issues/69014026?hl=zh-cn)
          将部署 build 输出移至 intermediates 文件夹

          我看这里标记了一个`AGP-7.2 Beta`版本,我就先不深究到底是修复了还是怎么样,等7.2出了再试试看吧。

Originally posted by @shifujun in #799 (comment)

大佬这个问题我弄过,之前想自定义 apk 打包输出目录的时候遇到了这个问题,后面也是通过 hook apk_ide_redirect_file 这个任务的执行完成了,可以参考 apk_build.gradle 这个脚本处理

shifujun added a commit to shifujun/Shadow that referenced this issue Apr 22, 2024
shifujun added a commit to shifujun/Shadow that referenced this issue Apr 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PR welcome 欢迎贡献代码
Projects
None yet
Development

No branches or pull requests

2 participants