我想获取 Android 设备的版本。在Java中是android.os.Build.VERSION.RELEASE,在Delphi中是怎样的?
Android是否向后兼容,换句话说,Android 1.6中开发的应用程序可以在Android 2.0中运行吗?
我刚刚发布了一个2.0应用程序,发现我使用我的G1(Android 1.6)手机无法在市场上找到它.但显然其他人正在下载它.
我应该将应用程序降级到1.6还是需要为每个Android版本创建单独的应用程序?
我试图在我的代码中创建一个条件来比较 Android 版本。类似于;
if(version < 2.2)
{// TODO }
else
{// TODO }
Run Code Online (Sandbox Code Playgroud)
有人可以让我知道如何做到这一点吗?
我正在为Froyo开发一个应用程序作为最低版本,而Gingerbread作为目标版本.所以,清单显示:
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10"/>
Run Code Online (Sandbox Code Playgroud)
我有一个模拟器和一个带姜饼的Nexus One,应用程序正确部署和安装.但是当它启动时,它会崩溃,并且日志中抛出的错误是:
09-18 06:35:11.240: ERROR/AndroidRuntime(382): FATAL EXCEPTION: main
09-18 06:35:11.240: ERROR/AndroidRuntime(382): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.my.package/com.my.package.Dashboard}: java.lang.ClassNotFoundException: com.my.package.Dashboard in loader dalvik.system.PathClassLoader[/data/app/com.my.package-2.apk]
09-18 06:35:11.240: ERROR/AndroidRuntime(382): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
09-18 06:35:11.240: ERROR/AndroidRuntime(382): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
09-18 06:35:11.240: ERROR/AndroidRuntime(382): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-18 06:35:11.240: ERROR/AndroidRuntime(382): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
09-18 06:35:11.240: ERROR/AndroidRuntime(382): at android.os.Handler.dispatchMessage(Handler.java:99)
09-18 06:35:11.240: ERROR/AndroidRuntime(382): at android.os.Looper.loop(Looper.java:130)
09-18 06:35:11.240: ERROR/AndroidRuntime(382): at android.app.ActivityThread.main(ActivityThread.java:3683)
09-18 06:35:11.240: ERROR/AndroidRuntime(382): at java.lang.reflect.Method.invokeNative(Native Method)
09-18 06:35:11.240: ERROR/AndroidRuntime(382): at java.lang.reflect.Method.invoke(Method.java:507)
09-18 06:35:11.240: ERROR/AndroidRuntime(382): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-18 06:35:11.240: ERROR/AndroidRuntime(382): …Run Code Online (Sandbox Code Playgroud) 我有一个与10(GINGERBREAD_MR1)到17(JELLY_BEAN_MR1)的Android版本兼容的项目.
所以,我想使用setBackgroundDrawable低至16和setBackground版本16或更高版本的版本.
我试过这个:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
subMessageFromToLinearLayout.setBackgroundDrawable(null);
} else {
subMessageFromToLinearLayout.setBackground(null);
}
Run Code Online (Sandbox Code Playgroud)
但是,Eclipse给了我:
警告subMessageFromToLinearLayout.setBackgroundDrawable(null);:
"不推荐使用View类型的方法setBackgroundDrawable(Drawable)"
错误subMessageFromToLinearLayout.setBackground(null);:
"调用需要API级别16(当前最小值为10):android.widget.LinearLayout #setBackground"
我如何修复此错误,以便根据正在运行的Android版本使用这两行?
提前致谢.
我正在为设备构建AOSP.有没有办法在本机代码编译时获得当前的AOSP版本?我正在寻找类似Linux中的LINUX_VERSION_CODE和KERNEL_VERSION(X,Y,Z)指令.更具体地说,我想在我自己的AOSP附加项目中做一些看起来像这样的事情:
#if (ANDROID_VERSION_CODE >= ANDROID_VERSION(4,2,1))
... compile something ...
#else
... compile something else...
#endif
Run Code Online (Sandbox Code Playgroud) 我在不同的 android 库中看到过很多关于检测设备是否支持 LOLLIPOP 的示例。但是当我在我的应用程序中使用它时,它会抛出以下错误:
错误:(20, 60) 错误:找不到符号变量 LOLLIPOP
例如我的源代码是:
static boolean isLollipop() {
return Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP || Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP_MR1;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用最新版本的 Android Studio,所有软件包均已更新并安装。
这条语句有错误:
Build.VERSION_CODES.LOLLIPOP
Run Code Online (Sandbox Code Playgroud)
另外,当我检查 的选项时VERSION_CODES,LOLLIPOP该列表中不存在。
我在 Android Studio 最新版本 (3.5) 上遇到一些问题。我认为它不稳定。如何下载稳定的旧版本?
我有一个包含我所有代码的Android应用程序项目.我已将这个"应用程序"设为android.developer.com中定义的库项目..
因此,我制作了两个利用这个图书馆项目的新Android项目.每个新项目的新包名称为:
com.myapps.freeapp
com.myapps.paidapp
Run Code Online (Sandbox Code Playgroud)
正如您可能看到的,我正在尝试发布应用程序的免费和付费版本.
告诉图书馆项目安装的应用程序是免费版还是付费版的最佳方法是什么?
android ×10
android-version ×10
adt ×1
delphi ×1
delphi-xe5 ×1
eclipse ×1
gradle ×1
version ×1