GVKun编程网logo

android – 设置Ionic应用程序的错误(android 默认应用设置)

7

对于想了解android–设置Ionic应用程序的错误的读者,本文将是一篇不可错过的文章,我们将详细介绍android默认应用设置,并且为您提供关于(6Android)Android应用程序的基本组成

对于想了解android – 设置Ionic应用程序的错误的读者,本文将是一篇不可错过的文章,我们将详细介绍android 默认应用设置,并且为您提供关于(6 Android) Android应用程序的基本组成、Android ApplicationInfo 应用程序信息的详解、Android minSdkVersion = 3但Android市场的Android 1.5设备无法使用应用程序?、Android Studio 错误:“清单合并失败:针对 Android 12 的应用程序”的有价值信息。

本文目录一览:

android – 设置Ionic应用程序的错误(android 默认应用设置)

android – 设置Ionic应用程序的错误(android 默认应用设置)

我刚刚开始使用Ionic Framework来编写我的第一个 Android应用程序.

我可以设置项目,但是当我想通过’ionic platform add’添加Android平台时,它说:

' ? Error reading config file: Error: ENOENT,open 'D:\Projects\android2\config.xml'
Error happened: undefined'

当我想通过’ionic build android’构建应用程序时,它说:
“目前的工作目录不是基于Cordova的项目.”

当我从离子FAQ(‘cordova create’)运行修复时,它说:

'At least the dir must be provided to create new project. See `cordova help`.'

有谁知道为什么会发生这种错误?

编辑:尝试在多台计算机(Windows 7 64)上,得到相同的错误.

解决方法

进入文件夹,你将找到另一个文件夹,你可能在其中包含与你的项目相关的所有文件,进入文件夹后写下命令’ionic platform add android’…
例如:

step1:离子启动MyFirstApp空白

运行此命令后,将创建一个文件夹,在该文件夹中运行您的驱动器.

step2:通过运行命令’cd MyFirstApp’进入文件夹名称’MyFirstApp’

step3:然后编写离子平台添加android

我认为这对你有用!快乐的编码

(6 Android) Android应用程序的基本组成

(6 Android) Android应用程序的基本组成

Android应用程序是由组件组成的,组件可以调用相互独立的功能模块。根据完成的功能,组件可划分为四类核心组件,即Activity、Service、broadcastReceiver和ContentProvider。

1 Activity组件

Activity是Android最重要的组件,负责用户界面的设计。Activity用户界面框架采用MVC 模式(Model View Controller) 。控制器负责接受并响应程序的外部动作;通过视图反馈应用程序给用户的信息(UI 界面反馈);模型是应用程序的核心,用于保存数据和代码。

2 Service组件

Service是Android提供的无用户界面、长时间在后台运行的组件。Android 提供了许多系统服务程序。

3 broadcastReceiver组件

在Android系统中,当有特定事件发生时就会产生相应的广播。例如,开机启动完成、收到短信、电池电量改变、网络状态改变等。

为了通知手机用户有事件发生,在通常情况下,通知管理器(notificationmanager)会在手机的状态栏里产生一个具有提示音的通知,用户通过下滑手势可以查看相关信息。

broadcastReceiver(广播接收者)接收来自系统或其他应用程序的广播,并做出回应。

4 ContentProvider组件

为了跨进程共享数据, Android提供了ContentProvider接口,可以在无须了解数据源、路径的情况下,对共享数据进行查询、添加、删除和更新等操作。

5 Application、Context和Intent

a.应用对象Application

当Android程序启动时系统会创建一个Application类型的对象,用来存储系统的一些信息完成数据传递、共享和缓存等操作。

Application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期,且是全局、单例的,即在不同的Activity和Service中获得的对象都是同一个对象。

b.上下文对象Context

Activity和Service都是Context的子类,通过Context提供的方法getApplicationContext()就能获得Context对象。

broadcastReceiver、ContentProvider并不是Context的子类,其所持有的Context都是由其他组件传递过来的。

Android组件及通信机制,如图所示。

2.png

c.意图对象Intent

Android提供轻量级的进程间通信机制Intent,使跨进程组件通信和发送系统广播成为可能,组件Activity、Service和broadcastReceiver都是通过消息机制被启动(激活)的,其使用的消息就封装在对象Intent里。

6 Android应用程序的运行入口

在一个Android应用程序开始运行的时候,会单独启动一个进程(Process)。默认的情况下,这个应用程序中的所有组件(Activity、Service、broadcastReceiver和ContentProvider)都会运行在这个进程里。

一个Android应用程序通常由多个Activity组成,但只有一个主Activity。在项目清单文件中使用< activity >标签注册主Activity时,还需要内嵌 < intent-filter > 、 < action> 和 < category > 标签,以此说明该Activity为Android应用程序的入口。定义一个MainActivity.java为应用的主Activity代码如下:

3.png

Android ApplicationInfo 应用程序信息的详解

Android ApplicationInfo 应用程序信息的详解

Android ApplicationInfo 应用程序信息

1、简述

1 ApplicationInfo是android.content.pm包下的一个实体类,用于封装应用的信息,flags是其中的一个成员变量public int flags = 0;用于保存应用的标志信息。

2 ApplicationInfo 通过它可以得到一个应用基本信息。
   这些信息是从AndroidManifest.xml的< application >标签获取的

3 ApplicationInfo对象里保存的信息都是<application>标签里的属性值

4 ApplicationInfo与ResolveInfo比较:前者能够得到Icon、Label、Meta-data、description。后者只能得到Icon、Label


2、获取ApplicationInfo

2.1 、获取手机上安装所有程序对应的 ApplicationInfo

/**
* 获取手机上安装的所有的程序对应的 ApplicationInfo
* 它是通过解析AndroidManifest.xml的< application>标签中得到的,所以它能得到所有的app
*
* 获取手机上的所有的安装的应用程序信息
* 参数为 标识  一般为 PackageManager.GET_UNINSTALLED_PACKAGES
*/
List<ApplicationInfo> list = packageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);

2.2 、获取指定包名对应的 ApplicationInfo

 /**
* 获取指定应用程序 ApplicationInfo
* 参数一对应应用程序的包名
* 参数二 应用程序对应的标识 通常为 0
*/

      ApplicationInfo applicationInfo = packageManager.getApplicationInfo("com.androidlongs.contactsapplication",0);


3、通过ApplicationInfo来获取应用程序的 基本信息

3.1 、获取应用程序对应的包名、应用名称

//获取应用图标
Drawable drawable = applicationInfo.loadIcon(packageManager);

//获取应用程序的 包名
String appPackageName = applicationInfo.packageName;

//获取应用名
//参数 packageManager 是应用管理者对象 
String appName =applicationInfo.loadLabel(packageManager).toString();

3.2 、获取应用程序对应数据的目录以及占用的空间大小

//获取应用存放数据目录
String dir = applicationInfo.sourceDir;
Log.d("app ","应用存放数据目录 " +dir);

 //获取应用数据大小
ong length = new File(dir).length();

//转换为 M
float size = length*1f/1024/1024;
Log.d("app ","应用数据大小 " +length+"\t"+size);

3.3 、判断是否安装在外置储存空间存

//判断是否安装在外存
int flags = applicationInfo.flags;
if((flags&ApplicationInfo.FLAG_EXTERNAL_STORAGE)==ApplicationInfo.FLAG_EXTERNAL_STORAGE){
  Log.d("app "," 安装在 外置存储空间 ");
}else {
  Log.d("app "," 安装在 内置存储空间 ");
}

3.4 、判断应用程序是否是系统应用

//判断是否是系统应用
if((flags&ApplicationInfo.FLAG_SYstem)==ApplicationInfo.FLAG_SYstem){
  Log.d("app "," 是系统应用 ");
}else{
  Log.d("app "," 不是系统应用 ");
}

3.5 、manageSpaceActivityName

/**
 * 从”android:manageSpaceActivity“属性得到
 * 用于指定一个Activity来管理数据,
 * 它最终会出现在设置->应用程序管理中,
 * 默认为按钮为”清除数据”,指定此属性后,该按钮可点击跳转到该Activity,让用户选择性清除哪些数据。若不设置则为null.
 */
String activityName = applicationInfo.manageSpaceActivityName;
Log.i("applicationInfo","activityName: " + activityName);

3.6 、获取应用程序运行的进程

/**
 * 从”android:process“属性得到,注明应用运行的进程名。或不设置则默认为应用包名。
 */
String processName = applicationInfo.processName;
Log.i("applicationInfo","processName: " + processName);

3.7 、其他配置信息简述

// 配置文件中的android:backupAgent属性值,用于备份
      String backupAgentName = applicationInfo.backupAgentName;
      Log.i("applicationInfo","backupAgentName: " + backupAgentName);
      // 获取继承Application类的对象,维护全局的Application状态
      //但一般都不用继承的方式,可以通过Context.getApplicationContext()方法得到
      String className = applicationInfo.className;
      Log.i("applicationInfo","className: " + className);




      /**
       * 可选项,访问当前应用所有组件需要声明的权限,从”android:permission“属性得到。
       */
      String permisson = applicationInfo.permission;
      Log.i("applicationInfo","permisson: " + permisson);
      // 创建对象时,传入的是GET_SHARED_LIBRARY_FILES该属性才有值
      String[] files = applicationInfo.sharedLibraryFiles;
      Log.i("applicationInfo","files: " + files);
      // 存放数据的路径 应用数据目录。
      String dataPath = applicationInfo.dataDir;
      Log.i("applicationInfo","dataPath: " + dataPath);
      // 本地路径 JNI本地库存放路径。
      String nativePath = applicationInfo.nativeLibraryDir;
      Log.i("applicationInfo","nativePath:" + nativePath);
      // 公共资源路径
      String punlicSourcePath = applicationInfo.publicSourceDir;
      Log.i("applicationInfo","punlicSourcePath: " + punlicSourcePath);
      // 资源路径 应用APK的全路径
      String sourcePath = applicationInfo.sourceDir;
      Log.i("applicationInfo","sourcePath: " + sourcePath);

      /**
       * 当前应用所有Activity的默认task密切性。
       * 可以参考ActivityInfo的taskAffinity,从”android:taskAffinity“属性得到。
       * 具体taskAffinity是怎么影响到Activity在task的启动,后面会在Activity启动模式中细讲
       */
      String taskAffinity = applicationInfo.taskAffinity;
      Log.i("applicationInfo","taskAffinity: " + taskAffinity);
      // 如果是false,代表application里的所有组件都禁用
      boolean enable = applicationInfo.enabled;
      Log.i("applicationInfo","enable: " + enable);
      // 表述资源文件的标识
      int descriRes = applicationInfo.descriptionRes;
      Log.i("applicationInfo","descriRes: " + descriRes);
      int flag = applicationInfo.flags;
      Log.i("applicationInfo","flag: " + flag);
      // 指定smallest screen width的值,超过这个值,就要开启屏幕兼容
      int compatibleWidth = applicationInfo.compatibleWidthLimitDp;//android:compatibleWidthLimitDp属性
      Log.i("applicationInfo","compatibleWidth: " + compatibleWidth);
      // 同上,只是这时候用户无法禁止屏幕兼容模式,说明是强制启动屏幕兼容
      int largestWidth = applicationInfo.largestWidthLimitDp;//android:largestWidthLimitDp属性
      Log.i("applicationInfo","largestWidth: " + largestWidth);
      // 所需屏幕空间的最短尺寸,int samllestWidth = applicationInfo.requiresSmallestWidthDp;//android:requiresSmallestWidthDp属性
      Log.i("applicationInfo","samllestWidth: " + samllestWidth);
      // 应用所需的最小sdk版本
      int sdkVersion = applicationInfo.targetSdkVersion;
      Log.i("applicationInfo","sdkVersion: " + sdkVersion);
      int theme = applicationInfo.theme;
      Log.i("applicationInfo","theme: " + theme);//android:theme=
      int uid = applicationInfo.uid;
      Log.i("applicationInfo","uid: " + uid);
      // 配置文件中的uiOptions属性的值
      int uiOptions = applicationInfo.uiOptions;
      Log.i("applicationInfo","uiOptions: " + uiOptions);

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Android minSdkVersion = 3但Android市场的Android 1.5设备无法使用应用程序?

Android minSdkVersion = 3但Android市场的Android 1.5设备无法使用应用程序?

在我设置的 AndroidManifest.xml文件中 –

<uses-sdk android:minSdkVersion="3" />
<supports-screens android:normalScreens="true" android:smallScreens="false" android:largeScreens="false" android:anyDensity="false"/>

所以该应用程序应该适用于Android 1.5及更高版本的设备.但我无法从Android Market找到适用于1.5设备的此应用程序.应用程序适用于1.6及更高版本的设备.

我可以使用USB线在1.5设备上安装应用程序,它工作正常.

请解释为什么市场上没有适用于1.5设备的应用程序.

谢谢

解决方法

我总是补充说:

<supports-screens
          android:largeScreens="true"
          android:normalScreens="true"
          android:smallScreens="true"
          android:anyDensity="true" />
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/>

这似乎有效.支持屏幕只在SDK4中实现,所以我认为你应该添加它.

Android Studio 错误:“清单合并失败:针对 Android 12 的应用程序”

Android Studio 错误:“清单合并失败:针对 Android 12 的应用程序”

我已将我的模拟器版本和 Android SDK 版本更新为 Android S ( Android
12 )。更新后,我无法运行该项目。我无法运行 Hello,
World!

项目(空项目),但我可以构建 Gradle,但我无法运行该项目。我总是得到错误:

清单合并失败:针对 Android 12 及更高版本的应用需要为android:exported相应组件定义了意图过滤器时指定显式值。有关详细信息,请参阅
https://developer.android.com/guide/topics/manifest/activity-
element#exported 。

我该如何解决?

这是一个屏幕截图:

这是一个屏幕截图。

使用 Android 12 SDK 时如何解决此问题?

答案1

小编典典

您需要指定android:exported="false"android:exported="true"

显现:

<activity    android:name=".MainActivity"    android:exported="true"    android:theme="@style/Theme.MyApplication.NoActionBar">    <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" />    </intent-filter></activity>

如文件中所述:

如果您的应用以 Android 12 为目标并包含使用 Intent 过滤器的活动、服务或广播接收器,则您必须为这些应用组件显式声明
android:exported 属性。

警告 :如果活动、服务或广播接收器使用意图过滤器并且没有明确声明的 android:exported 值,则您的应用无法安装在运行
Android 12 的设备上。

还要检查何时对“android:exported”值使用真/假。

今天的关于android – 设置Ionic应用程序的错误android 默认应用设置的分享已经结束,谢谢您的关注,如果想了解更多关于(6 Android) Android应用程序的基本组成、Android ApplicationInfo 应用程序信息的详解、Android minSdkVersion = 3但Android市场的Android 1.5设备无法使用应用程序?、Android Studio 错误:“清单合并失败:针对 Android 12 的应用程序”的相关知识,请在本站进行查询。

本文标签: