如何在未定义'buildTypes'中的'applicationIdSuffix'的情况下获取包名(getPackageName())?

3
我想获取我的Android项目的包名,但不带有buildTypes后缀。
例如:
com.newproject.name 是我的项目的applicationId, 不同的buildTypes后缀为:
com.newproject.name.build1 com.newproject.name.build2
getPackageName()方法返回的包名带有构建类型,我不想要。
没有使用正则表达式,是否有其他方法可以获取它?

1
为什么你不想使用正则表达式? - undefined
1
@vincrichaud 你为什么想要使用正则表达式? - undefined
1
@ZUNJAE 我没有说我想要正则表达式。 - undefined
1
@vincrichaud 我不想使用正则表达式,因为在我的项目中有许多构建类型,我不想为每个构建类型都添加正则表达式。 - undefined
3个回答

1

我猜没有直接的解决方案,但也许这对你来说可以:

getPackageName().replace( "." + BuildConfig.BUILD_TYPE , "" );

这个真棒! - undefined

0
假设所有的包都遵循相同的格式
int positionOfLastDot = packageName.lastIndexOf('.');
return packageName.substring(0, positionOfLastDot)

这不是一个完美的解决方案。 我使用了应用程序Id后缀".build.dev"和".build"。 - undefined
我的评论是针对原始问题的解决方案。我并没有写评论来解决你具体的问题。@Kernelzero,别懒惰了,自己动手写实现吧。 - undefined
没问题。抱歉,但我想知道如何在不进行处理的情况下获取原始的packageName。祝您过得愉快。 - undefined

-2
试试这个:
String name = getApplicationContext().getPackageName();

这不会给出正确的解决方案,我已经在我的问题中提到了这一点。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接