本文的目的是介绍AndroidStudio第3部分:构建和运行应用程序的详细情况,特别关注如何建立androidstudio开发环境,其应用程序结构如何?的相关信息。我们将通过专业的研究、有关数据的分
本文的目的是介绍Android Studio第3部分:构建和运行应用程序的详细情况,特别关注如何建立android studio开发环境,其应用程序结构如何?的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解Android Studio第3部分:构建和运行应用程序的机会,同时也不会遗漏关于Android MultiDex应用程序在Android Studio 3.0上的低API上崩溃、Android Studio 3.2上的AndroidX – 运行应用时的VerifyError、Android Studio Java(生成的)文件在运行应用程序时出现错误、Android Studio – 应用程序没有安装到手机上,但运行的知识。
本文目录一览:- Android Studio第3部分:构建和运行应用程序(如何建立android studio开发环境,其应用程序结构如何?)
- Android MultiDex应用程序在Android Studio 3.0上的低API上崩溃
- Android Studio 3.2上的AndroidX – 运行应用时的VerifyError
- Android Studio Java(生成的)文件在运行应用程序时出现错误
- Android Studio – 应用程序没有安装到手机上,但运行
Android Studio第3部分:构建和运行应用程序(如何建立android studio开发环境,其应用程序结构如何?)
在Android Studio的第2部分中,您使用Android Studio创建了第一个动画移动应用程序。现在,第3部分将带您完成在Android模拟器或真实设备中构建和运行应用程序的步骤。
我们将首先使用Gradle构建应用程序的应用程序包(APK)文件。然后,我将向您展示如何在Android模拟器或实际设备(在本例中为Kindle Fire平板电脑)上设置和运行该应用程序。我还将向您展示如何解决Android Studio模拟器设置中的几个问题,包括臭名昭著的等待超时错误。
请注意,此系列已针对Android Studio 3.2.1进行了更新。
构建您的Android应用
如果按照第2部分中的说明进行操作,那么您已经将源代码和资源文件加载到了Android Studio项目中。现在,您已经准备好首次构建该应用程序。
如果还没有,请启动Android Studio。菜单栏提供了一个Build菜单,您将使用该菜单访问Gradle并构建示例应用程序。
从生成菜单中选择生成项目。您应该在状态栏上看到Gradle Build Running消息。一段时间后,您应该会看到Gradle Build Finished消息。单击此消息,将出现“ **事件日志”**窗口。
建立Android应用程序的方法不止一种。例如,您可以从“ **生成”**菜单中选择“ 重建项目 ” 。另一种方法是实际运行应用程序。如有必要,Gradle将在安装APK和运行该应用之前自动重建该应用。
使用“构建”菜单执行更多操作
Android Studio的“ 构建”菜单可让您执行多个构建任务。例如,您可以使用Generate Signed Bundle / APK 菜单项来构建签名的 app bundle 或APK。
运行您的Android应用
在本节中,我将向您展示如何通过两种方式运行Android应用程序:首先在模拟设备上,然后在实际设备上。在我的示例中,我将使用Amazon Kindle Fire HD平板电脑,但说明通常应适用于您选择的设备。
在模拟设备上运行您的Android应用
您可以通过在“ 运行”菜单中选择“运行”应用程序来运行示例应用程序(W2A)或任何其他应用程序。或者,您可以单击工具栏上的绿色三角形按钮。无论哪种方式,Android Studio都会弹出“ **选择部署目标”**的对话框。
初始化Android调试桥后,图2中的消息将替换为所有已连接的USB设备和已被Android Studio检测到的运行模拟器的列表。
在这种情况下,Android Studio尚未检测到任何已连接的USB设备或模拟器,因此您需要配置新的虚拟设备。单击创建新的虚拟设备将启动如图4所示的对话框。
选择想要模拟的设备。在此示例中,我选择了Nexus 5X(默认)。选择后,单击“ 下一步”。
出现的“ 系统映像”界面让您选择此设备模拟的系统映像。我单击了Other Images选项卡,然后单击IceCreamSandwich-图5中突出显示的行。
您需要单击下载链接以下载所选的任何系统映像。该映像默认情况下未安装。在安装系统映像之前,还将接受许可协议。
您必须接受许可协议才能继续。接受许可协议后,将显示“ **组件安装程序”**界面。此时,正在下载并安装系统映像组件。
在继续之前,最好检查一下您的工作。使用“ **后退”**按钮返回安装对话框,然后返回“ **Android虚拟设备”(AVD)**界面。在这里,您可以确认更改将运行模拟设备AVD的设置。
对于此示例,我选择保留默认设置。您可以保留默认值或进行任何必要的更改,然后单击“ 完成”。现在,您应该返回到“ **选择部署目标”**对话框。
选择你创建的模拟器,然后单击“ 确定”。
对Android设备模拟器进行故障排除
不幸的是,在安装的这一点上,您可能会收到一条消息,提示不支持即时运行。在我的情况下,状态栏显示“ **正在等待目标设备联机”**消息,并出现一个空的模拟器窗口。
模拟器窗口出现后不久qemu-system-armel.exe
,负责创建此窗口的基于Windows的程序崩溃了。(从第1部分中回想起,我正在使用64位Windows操作系统。)
起初,我不确定如何解决此问题。幸运的是,下一次我运行Android Studio时,在Android Studio主窗口的右下方区域中观察到一条IDE和Plugin Updates消息。
我单击了更新链接,并按照说明更新了模拟器,从而生成了一个新qemu-system-armel.exe
文件。
之后没有再次崩溃,但我很快遇到了另一个障碍。
等待目标设备上线
当我尝试在模拟器中运行该应用程序时,状态栏再次显示“ **正在等待目标设备联机”**消息,然后显示空白的模拟器窗口。
最终,Android Studio放弃等待,并显示错误消息:等待设备时出错:等待模拟器上线300秒超时。
当我搜索这些消息时,发现许多其他人都遇到了此问题。一些开发人员通过启用AVD的图形处理单元硬件解决了此问题。我们需要进行一些探索才能弄清楚这一点,因此,我将分享我的经验教训,并希望为您节省一些时间。
启用AVD的图形处理单元
AVD由位于.avd
扩展名目录中的几个文件和目录组成。例如,我创建的AVD位于C:\USERS\Jeff\.android\avd\Nexus_5X_API_15.avd
中。
此目录包含一个config.ini
文件,该文件存储AVD的配置设置。有两个设置引起了我的注意:
hw.gpu.enabled=no
hw.gpu.mode=off
我将这些条目更改为以下内容:
hw.gpu.enabled=yes
hw.gpu.mode=on
启用图形处理单元可以解决问题:下次尝试运行该应用程序时,我看到了运行正常的Nexus 5X模拟设备。
我使用鼠标向右滑动锁定图标来解锁设备。此时,模拟器显示了示例应用程序的主要活动。
如何使用AVD Manager?
如果您像我一样,可能希望可以通过AVD Manager更改模拟器设置。例如,AVD的配置屏幕上有一个图形下拉列表框,其中包含软件-GLES 1.1(默认设置)和硬件-GLES 2.0条目。我尝试选择“ 硬件-GLES 2.0”,但所做的更改没有保留。我成功更改hw.gpu
了config.ini
文件中的条目。
在实时设备上运行Android应用
通过Android Studio缓慢的模拟器运行应用程序可能会非常令人沮丧。一种解决方案是使用更快的第三方模拟器,例如GenyMotion的Android Studio插件。另一个解决方案是使用实际的Android设备。
几年前,我购买了运行Android 4.0.3(API级别15)的第一代Amazon Kindle Fire HD 7“平板电脑。我仍然使用该平板电脑运行不需要最新Android API的Android应用程序。
在研究如何将Kindle Fire平板电脑与Android Studio 3.2.1结合使用时,我从网上找到了两个有用的指南:设置Fire Tablet的开发环境和通过ADB连接到Fire Tablet。我将总结将Kindle Fire设备连接到Android Studio的过程,但是如果您需要更多信息,请参考这些指南。
首先,如果您是像我这样的Windows用户,则需要先卸载再将Kindle Fire平板电脑连接到开发计算机时安装的非ADB驱动程序,而无需先启用ADB。然后,安装亚马逊的USB驱动程序。
接下来,下载Kindle Fire USB驱动程序。下载的ZIP存档包含一个Fire_Devices ADB drivers.exe
应用程序。
执行Fire_Devices ADB drivers.exe
并遵循说明。我最后找到一个包含必要驱动程序文件的目录C:\Program Files (x86)\Amazon.com\Fire_Devices\Drivers
。
安装驱动程序后,我需要在平板电脑上启用ADB。然后,将平板电脑连接到开发计算机。如果您需要将平板电脑连接到Android Studio的其他说明,请参阅Amazon指南。
完成所有设置后,启动Android Studio,加载您的Android项目,然后运行该应用程序。这次,“ **选择部署目标”**对话框应在“ 连接的设备”部分显示一个Amazon KFTT条目。选择此项,然后单击“ 确定”。Android Studio通过指示Gradle来构建应用程序来做出响应。完成后,它将安装应用程序的APK并在设备上运行该应用程序。
第三部分总结
您已经使用Android 3.2.1或更高版本编写,构建和运行了第一个Android Studio应用程序,并且在此过程中进行了一些故障排除。下一步,我建议尝试所学知识。使用前三篇Android初学者教程中的示例和源代码来开发自己的新项目。在学习使用Android Studio及其内置功能的来龙去脉时,请保持项目简单,但要挑战自己进行练习。
当然,您可以使用Android Studio做更多的事情。本系列的最后一篇文章介绍了三个内置工具,用于记录,调试和整理Android应用程序。我还将使用三个生产力插件(包括Project Lombok)扩展Android Studio。
在此之前,祝您编程愉快!
Android MultiDex应用程序在Android Studio 3.0上的低API上崩溃
我试图在API 16设备上运行需要使用Android Studio 3.0的MultiDex的应用程序,当应用程序最终尝试启动时,它会崩溃.
其他低API也是如此(例如:17,18,19)
但是,当我尝试使用Android Studio 3.1(测试版)运行应用程序时,不会发生崩溃.
这种崩溃有什么办法可以修复吗?
FATAL EXCEPTION: main
java.lang.ExceptionInInitializerError
at android.support.multidex.MultiDexApplication.<init>(MultiDexApplication.java:35)
at MY_APP_PATH.MY_CUSTOM_APPLICATION_CLASS.<init>(MY_CUSTOM_APP_CLASS.java:23)
at java.lang.class.newInstanceImpl(Native Method)
at java.lang.class.newInstance(Class.java:1319)
at android.app.Instrumentation.newApplication(Instrumentation.java:997)
at android.app.Instrumentation.newApplication(Instrumentation.java:982)
at android.app.LoadedApk.makeApplication(LoadedApk.java:496)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4170)
at android.app.ActivityThread.access$1400(ActivityThread.java:134)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4867)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1306]: 1674 cannot locate '__isnanf'...
at java.lang.Runtime.loadLibrary(Runtime.java:370)
at java.lang.System.loadLibrary(System.java:535)
at com.android.tools.profiler.support.ProfilerService.<clinit>(ProfilerService.java:41)
at android.support.multidex.MultiDexApplication.<init>(MultiDexApplication.java:35)
at MY_APP_PATH.MY_CUSTOM_APPLICATION_CLASS.<init>(MY_CUSTOM_APPLICATION_CLASS.java:23)
at java.lang.class.newInstanceImpl(Native Method)
at java.lang.class.newInstance(Class.java:1319)
at android.app.Instrumentation.newApplication(Instrumentation.java:997)
at android.app.Instrumentation.newApplication(Instrumentation.java:982)
at android.app.LoadedApk.makeApplication(LoadedApk.java:496)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4170)
at android.app.ActivityThread.access$1400(ActivityThread.java:134)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4867)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
at dalvik.system.NativeStart.main(Native Method)
解决方法:
问题应该是关于在AS 3.0中启用“高级分析”功能,如果你这样做只是禁用它:
>转到“编辑配置…”,
>在“Android App”下选择您的应用配置,
>然后转到“分析”选项卡
>取消选中“启用高级分析”
问题应该消失了.
Android Studio 3.2上的AndroidX – 运行应用时的VerifyError
在调试中运行时,一切都按预期工作但如果我生成一个签名的APK,使用Proguard进行模糊处理 – 我收到此错误:
java.lang.VerifyError: Verifier rejected class d.a: androidx.preference.Preference d.a.a(androidx.fragment.app.k,int) Failed to verify: androidx.preference.Preference d.a.a(androidx.fragment.app.k,int): [0x8] ‘this’ argument ‘Reference: androidx.fragment.app.k’ not instance of ‘Reference: androidx.preference.B’ (declaration of ‘d.a’ appears in base.apk)
我已经尝试排除所有AndroidX库:
-dontwarn androidx.** -keep class androidx.** { *; } -keep interface androidx.** { *; }
但问题仍然存在,除非我基本上取消使用的混淆
-keep class com.myapp.package.** { *; }
还尝试查看d.a类的映射文件,但它没有提示我问题的方向.
Jetifier已启用
android.useandroidX=true android.enableJetifier=true
我在这里错过了什么吗?这有可能是这个问题与androix.preference库有关吗?
>在Google issue tracker上打开了一个错误.
解决方法
Android Studio Java(生成的)文件在运行应用程序时出现错误
从Android Studio IDE
文件菜单->使高速缓存无效并重新启动->使高速缓存无效并重新启动。
这应该可以解决您的错误
,您位于java(生成的)文件夹下...
这些Java文件不应该被编辑...
那些是由编译器生成的。...
上面清楚写着它,不可以编辑
正如您所说的text = c("Slechte bediening,van begin tot eind","Het eten was heerlijk en de bediening was fantastisch","Geweldige service en beleefde bediening","Verschrikkelijk. Ik had een vlieg in mijn soep","Het was oké. De bediening kon wat beter,maar het eten was wel lekker. Leuk sfeertje wel!","Ondanks dat het druk was toch op tijd ons eten gekregen. Complimenten aan de kok voor het op smaak brengen van mijn biefstuk")
identifier <- c("3","4","6","7","1","5")
df <- data.frame(identifier,text)
只是引用此this
谢谢
,import qrcoba.w3engineers.com.qrcoba.databinding.R
使用此文件进行导入
,尝试快速破解,关闭android studio,转到您的项目文件夹,删除构建文件,.iml文件,.gradle文件,并使android studio无效并重新启动。
,如果您打算更改软件包名称,请尝试使用此answer。编辑生成的文件的目的是什么
Android Studio – 应用程序没有安装到手机上,但运行
我使用Android Studio在手机上运行我的应用程序,运行正常.但应用程序本身从未安装过……
菜单中没有图标.每当我想测试我的应用程序时,我都必须“运行”.我没有错.
我相信我的清单存在问题.我在这做错了什么?:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jb854.eda.kent.ac.uk.edanews">
<uses-feature
android:name="android.software.leanback"
android:required="false" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name=".EDANewsApplication"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".activity.MainActivity"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.broWSABLE"/>
<data android:scheme="http" android:host="www.eda.kent.ac.uk" android:pathPrefix="/school/"/>
</intent-filter>
</activity>
<activity
android:name=".activity.CommentsActivity"
android:theme="@style/AppTheme.TransparentActivity" />
<activity
android:name=".activity.ArticleActivity"
android:theme="@style/AppTheme.TransparentActivity" />
<activity
android:name=".activity.FullscreenImageActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/title_activity_fullscreen_image"
android:theme="@style/AppTheme.TransparentActivity" />
<activity
android:name=".activity.FavouritesActivity"
android:label="@string/title_activity_favourites"
android:theme="@style/AppTheme.TransparentActivity" />
</application>
</manifest>
解决方法:
您应该为您的MainActivity添加类别LAUNCHER和操作MAIN:
<activity
android:name=".activity.MainActivity"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.broWSABLE"/>
<category android:name="android.intent.category.LAUNCHER"/>
<data android:scheme="http" android:host="www.eda.kent.ac.uk" android:pathPrefix="/school/"/>
</intent-filter>
</activity>
今天关于Android Studio第3部分:构建和运行应用程序和如何建立android studio开发环境,其应用程序结构如何?的讲解已经结束,谢谢您的阅读,如果想了解更多关于Android MultiDex应用程序在Android Studio 3.0上的低API上崩溃、Android Studio 3.2上的AndroidX – 运行应用时的VerifyError、Android Studio Java(生成的)文件在运行应用程序时出现错误、Android Studio – 应用程序没有安装到手机上,但运行的相关知识,请在本站搜索。
本文标签: