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

我项目中集成了友盟统计,然后使用walle打包后R文件报错 #109

Closed
ImportEffort opened this issue May 11, 2017 · 15 comments
Assignees

Comments

@ImportEffort
Copy link

ImportEffort commented May 11, 2017

我项目中集成了友盟统计,然后使用walle打包后,项目的R文件总会丢失,并在所有的类中引用了com.umeng.analytics.b.g.R 这个R文件,我按照友盟的要求添加混淆规则:

-keep public class【包名】.R$*{
public static final int *;
}
并在/app/build/outputs/mapping/release/usage.txt 中找到了我们项目的 R 文件
com.goldenalpha.stock.master.R:

@GavinCT
Copy link
Member

GavinCT commented May 11, 2017

额 walle并不触碰这些区域
建议你可以先打一个包 不适用walle 如果可以了再写入渠道

@GavinCT GavinCT self-assigned this May 11, 2017
@ImportEffort
Copy link
Author

@GavinCT 可是如果我不适用walle 打包我的apk 并不会造成这种情况发生

@GavinCT
Copy link
Member

GavinCT commented May 11, 2017

请先自己确认一下吧 issue里很多朋友都用了友盟统计 并没有什么问题。
而且walle操作区跟不可能有class相关的东西。。。

@ImportEffort
Copy link
Author

@GavinCT 经过我的测试发现是因为

  1. ./gradlew clean 后R文件就会丢失
  2. 而使用AS 的buid——> clean 就不会出现问题
  3. 单独使用 ./gradlew assembleReleaseChannel 并不会出现R文件丢失
  4. gradle 版本是 classpath 'com.android.tools.build:gradle:2.3.1'
    虽然与项目关系不是很大,也希望您可以给我解答一下 我直接使用./gradlew assembleReleaseChannel打包时候回出现不必要的问题,如果可以请您 告诉我为什么会发生这种情况

@GavinCT
Copy link
Member

GavinCT commented May 11, 2017

  1. clean是清除操作,相关构建产物都会消除
  2. 这个应该是执行clean build两个指令了,具体我没有细看

后面没台看到,3说并不出现R文件丢失,最后问什么又说会出现不必要的问题呢?

@ImportEffort
Copy link
Author

@GavinCT 3 的意思是说我可以直接使用 ./gradlew assembleReleaseChannel 而不是使用 ./gradlew clean assembleReleaseChannel 来进行我的多渠道打包么? 是否会因为少了clean 操作对walle 打包产生问题?

@GavinCT
Copy link
Member

GavinCT commented May 11, 2017

assemble的过程会重新生成R文件才对 理论上clean并不会产生什么影响。

clean用于保证当前打包出来的apk是最新代码产物,而不是历史遗留。 与apk生成有关。与walle无关。 用不用clean都行,看个人习惯。

@GavinCT GavinCT closed this as completed May 11, 2017
@yuelaiyuehao123
Copy link

我也遇到打包之后项目的R文件消失了。 这个问题怎么解决了?

@ImportEffort
Copy link
Author

@cuiyue1988 后来检测并不是友盟的原因 我的解决办法是使用
./gradlew assembleReleaseChannel 打包而不是使用文档中的:
./gradlew clean assembleReleaseChannel 指令打包

@GavinCT
Copy link
Member

GavinCT commented May 18, 2017

囧 你们试试不用walle插件的时候 clean是否也有问题?
这种不是walle插件能做到的啊 因为demo显然没有任何问题

@GavinCT
Copy link
Member

GavinCT commented May 18, 2017

当然不clean也没啥问题 clean只是保证是当前最新的生成结果 避免受到别的影响

@ImportEffort
Copy link
Author

@GavinCT 使用 studio 自带的 clean 方法就好使,如果使用 gradle 进行 ./gradlew clean 出现问题 ,stuido 版本2.3 就会出问题

@CrazyStoneJy
Copy link

恩,我也出现了这个问题,这可能是android studio的bug!

@CrazyStoneJy
Copy link

@ImportEffort

@GavinCT GavinCT mentioned this issue Aug 5, 2017
@popmj007
Copy link

popmj007 commented Nov 9, 2017

这个问题我也出现了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants