2015-04-23 134 views
25

我有一个针对Android SDK v21的Android项目。现在我需要使用Android 4.4(即SDK v20)在设备上进行调试。我该如何告诉Android Studio将旧版本的源码附加到内部类中,以便我可以一步步完成它们?Android Studio:如何调试旧版Android SDK步骤

+2

这可能是暂时的解决方法:HTTP ://stackoverflow.com/a/30054969/939193。 –

+0

我看到,如果将compileSdkVersion设置为20,则它仅使用来自20的源。 –

+0

@cypressious,你的项目是否在空中,意思是在谷歌市场上?你能提供你得到的例外吗?是为特定品牌(LG,三星等),例如三星在他们的设备上更改操作系统的Android系统? 为了在较低的版本上进行调试,您可以安装Genymotion并在android studio中处于调试模式时在其上运行应用程序。 Genymotion的免费版本为您提供所有Android 4.0及以上版本的支持,我认为2.2也包含在内。 你必须知道你的应用崩溃的地方,以免浪费宝贵的时间。 –

回答

-1

您可以使用首选的API级别创建一个新的Android虚拟设备,并在其上调试应用程序。

+0

我的应用程序中有一个错误只发生在Android 4.4上。我需要通过平台代码来追踪它。 –

+0

发生错误时会发生什么情况?它会崩溃吗? – Jan

+0

发生你的logcat时,它发生。 –

5

我无法确认我的答案是否有效,但它对我有用。

我代替我compileSdkVersionbuildToolsVersion的minSdkVersiontargetSdkVersion用一个新的像我的build.gradle文件以下。

android { 
     compileSdkVersion 22 
     buildToolsVersion "22.0.1" 


defaultConfig { 
    applicationId "com.example.mytest" 
    minSdkVersion 15 
    targetSdkVersion 22 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

更改后,可能不需要将旧的转换为新的或新的旧的sdk组件。

6

这里最好的解决方案是将编译SDK版本设置为20.因此,构建工具将使用SDK版本20编译您的项目,您可以调试您的应用程序。

Setting Compile SDK version

当您使用几个模块在你的项目,你需要相同的编译SDK版本设置为每个模块。

+1

那么,这将不适用于任何使用最近API的项目,因为它不会再编译... – mbonnin

4

您需要打开模块设置(右键点击您的应用程序模块,然后选择打开模块设置或只选择模块,然后按⌘+↓在Mac)

而选择compileSdkbuildTools到V20

另一个方法是打开“app”模块的build.gradle文件以更改compileSdkbuildTools

1

我想在解决方案前解释一下。

Google以JAR(android.jar)文件的形式提供SDK API。 JAR文件存储在SDK LOCATION\platforms\android-API#。 例如,Android 4.4(Kitkat)API-19的android.jar文件位于YOUR SDK LOCATION\platforms\android-19\android.jar

的摇篮汇编了Android Studio使用compileSdkVersion字段中build.gradle选择为编辑特定的android.jar
什么是compileSdkVersion

  • 该应用程序针对的编译版本。
  • 这意味着您可以编译和使用该版本API中包含的Android API功能编译期间还包括所有以前的版本功能。
  • 如果您尝试使用API​​ 21功能,例如public void openCamera (String cameraId, CameraDevice.StateCallback callback, Handler handler) 在API级别21中添加但将compileSdkVersion设置为20,则会收到编译错误。
  • 如果设置compileSdkVersion 21仍然可以只要你的应用程序的执行路径不尝试调用特定的任何API,以API 21

如何设置compileSdkVersion运行API 20设备上的应用程序? 有两种方式

从GUI

1)选择

compileSdkVerion
1.选择API “文件 - >项目结构...”
2)选择 “APP->属性”
3)从下拉框中将“编译Sdk Verion”设置为所需的SDK版本。
4)“compileSdkVersion”将自动设置在“app”模块的 “build.gradle”文件中。


2. gradle.build文件

1)打开build.gradle文件设置compileSdkVersion到所需的值,如19的API#19中的 “应用程序” 模块
2)的设置API。



我希望帮助... 编码快乐......

+0

这是一个解决方案是的。如果您在使用appcompat支持库时尝试执行此操作,则会发生大量编译错误。 – vangorra

0

只需打开模块设置和更改compileSdk编译工具到V20