【问题标题】:Why I can't build app with for a lower Android version?为什么我不能为较低的 Android 版本构建应用程序?
【发布时间】:2016-05-29 12:29:28
【问题描述】:

我使用 Android Studio,开始使用 SDK 版本 23 来编码和构建应用程序,一切运行正常。但该应用程序仅适用于手机将 android 5.0 及更高版本。 我想为 Andriod 4.4 制作一个新版本。所以我在Android Studio中下载了SDK 19,然后点击app->打开模块设置->flavors->miniSdkversion为19。可以编译,但是运行时不工作并得到以下错误。 然后我也设置了targetSDK Version为19。同样,得到如下错误:


29 20:17:44.698 3699-3699/com.hanjing.flocking E/AndroidRuntime: FATAL EXCEPTION: main java.lang.ExceptionInInitializerError 在 java.lang.Class.newInstanceImpl(本机方法) 在 java.lang.Class.newInstance(Class.java:1319) 在 android.app.Instrumentation.newActivity(Instrumentation.java:1068) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2025) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135) 在 android.app.ActivityThread.access$700(ActivityThread.java:140) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:137) 在 android.app.ActivityThread.main(ActivityThread.java:4921) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:511) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 在 dalvik.system.NativeStart.main(本机方法) 原因:java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1307]: 1874 cannot locate 'rand'...

                                                                    at java.lang.Runtime.loadLibrary(Runtime.java:370)
                                                                    at java.lang.System.loadLibrary(System.java:535)
                                                                    at com.example.mac.flocking.MainActivity.<clinit>(MainActivity.java:37)
                                                                    at java.lang.Class.newInstanceImpl(Native Method) 
                                                                    at java.lang.Class.newInstance(Class.java:1319) 
                                                                    at android.app.Instrumentation.newActivity(Instrumentation.java:1068) 
                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2025) 
                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135) 
                                                                    at android.app.ActivityThread.access$700(ActivityThread.java:140) 
                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237) 
                                                                    at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                    at android.os.Looper.loop(Looper.java:137) 
                                                                    at android.app.ActivityThread.main(ActivityThread.java:4921) 
                                                                    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:1038) 
                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
                                                                    at dalvik.system.NativeStart.main(Native Method) 

如果我还将编译版本和构建工具版本设置为 19,编译时会显示错误。

所以我真的不知道我应该做什么。我只想制作一个可以在较低的Android手机上运行的新版本。

请帮忙!非常感谢!

这是 build.gradle: // 顶级构建文件,您可以在其中添加所有子项目/模块通用的配置选项。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

【问题讨论】:

  • 请提供minimal reproducible example。在这种情况下,除了您的堆栈跟踪之外,它还将包含 MainActivity 的代码,尤其是包含第 37 行的方法,您的异常来自哪里。
  • 你能发布你的 build.gradle
  • 这是 build.gradle: // 顶级构建文件,您可以在其中添加所有子项目/模块通用的配置选项。 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0' // 注意:不要将应用程序依赖项放在这里;它们属于 // 在单个模块 build.gradle 文件中 } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
  • @CommonsWare,第 37 行是 System.loadLibrary("softControl-jni");

标签: android sdk


【解决方案1】:

检查错误:

Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1307]: 1874 cannot locate 'rand'...

您是否使用任何在较低 android 版本中不可用的代码?

【讨论】:

  • 我不知道。这是我的第一个应用程序。我是安卓初学者。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多