集成友盟时,需要在manifest文件中设置channel。腾讯乐固支持加固后生成多渠道包,需要验证一下其最终生成的多渠道包中友盟的channel设置是否正确。
<application>
<meta-data
android:name="UMENG_CHANNEL"
android:value="umeng" />
</application>
|
实现方式:
打印出来,即可确认加固后包中是否可以取得正确的channel。(下面代码不能放在Application的onCreate方法中,建议放到某个Activity中。)
try {
ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
String value = appInfo.metaData.getString("UMENG_CHANNEL");
Log.v("meta-data read test", value);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
meta-data的读取,有个更全的帖子:https://www.cnblogs.com/spring87/p/5810381.html
安卓开发技术分享:https://blog.csdn.net/yinxing2008/article/details/84555061
背景: 集成友盟时,需要在manifest文件中设置channel。腾讯乐固支持加固后生成多渠道包,需要验证一下其最终生成的多渠道包中友盟的channel设置是否正确。 &lt;application&gt; &lt;meta-data android:name="UMENG_CHANNEL" android:value="umen...
public final class ManifestUtils {
private static final String MANIFEST_DIRECTORY_LOCATION = "META-INF" + File.separator + "MANIFEST.MF";
private static final String MANIFEST_ENTRY =
在AndroidManifest.xml清单文件中 我们有时会看到如下类似的元素开始的配置内容:
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyBhBFOgVQclaa8p1JJeqaZHiCo2nfiyBBo" />
<meta-data
android
获取元素的value属性的值,有注释不解释。import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInf
meta-data提供给父组件附加数据项。一个组件元素可以包含任意数量的<meta-data>子元素。
所有这些值都收集在一个Bundle对象中,并作为 PackageItemInfo.metaData字段提供。
普通值通过value 属性指定。但是,要将资源 ID 分配为值,请改用 resource属性。
今天将团队的项目从gitlab拉下来,编译的过程中,报了个奇葩的错误:
More than one file was found with OS independent path 'META-INF/metadata.kot
翻译过来就是:
找到超过一个系统的文件,路径是‘META-INF/metadata.kot’
解决方案就是在app下的build.gralde的android {}模块里面添加要过滤的文件的配置:
android {
......
packagingOptions
Android中AndroidManifests.xml 之meta-data一、概念
meta-data( 元数据; 文件元数据)就像其名一样,主要用来定义一些组件相关的配置值。
按照官方定义,metadata是一组供父组件使用的名值对(name-value pair),因此相应的meta-data元素应该定义在相应的组件中。即如果想在activity中使用metadata,那么meta-data必须定义在AndroidManifest.xml的activity声明中。
AndroidManif
private String getMetaDataValue(String name, String def) {
String value = getMetaDataValue(name);
return (value == null) ? def : value;
private String getMetaDataValue(String name) {
今天用到的一些东西,在Android的使用过程
中meta-
data一般可以作为子元素,被包含在,,
中,而在项目过程
中取出这个
meta-
data里面的东西也是方法各不相同:
我们现在只说两个,因为代码比较简单:
首先是在的 ,我们在
Manifest.xml
文件中的
中添加: <
meta-
data
android:name="MY
DATA_APPLICATION"
在Java中,META-INF/MANIFEST.MF是一个特殊的目录和文件,用于指定打包后的jar文件的元信息,其中META-INF为目录,MANIFEST.MF为文件名。这个文件包含了一些元数据,如版本信息、作者、类路径、主类等。在打包后的jar文件中,这个文件通常位于jar文件的根目录下的META-INF目录中。
一般而言,META-INF目录中还可能包含一些其他的文件,如签名文件、扩展信息文件等。例如,如果你的jar文件需要被签名,那么你需要将签名文件放在META-INF目录下。具体的目录结构如下:
project.jar
└── META-INF
├── MANIFEST.MF
└── signature.SF
其中,project.jar为你的jar文件名,META-INF为目录名,MANIFEST.MF为元信息文件名,signature.SF为签名文件名。
Android Studio编译失败:org.gradle.api.tasks.TaskExecutionException: Execution failed for task
20048