【问题标题】:Android studio multidex And Ndk issueAndroid studio multidex 和 Ndk 问题
【发布时间】:2015-11-27 11:22:50
【问题描述】:

我正在使用 android studio 开发 android 应用程序。我有一个项目,它有两个模块作为库,并且两个模块都有几个库通用(.so 文件),因此我遇到了多 dex 问题。下面是 gradle 消息

> Error:Execution failed for task ':ftrScanApiAndroidHelperUsbHost:compileReleaseNdk'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/home/intel/BackUp/Ndk/ndk-build'' finished with non-zero exit value 2

我尝试了以下解决方案来解决这个问题,但这对我不起作用

defaultConfig{
       multiDexEnabled true
    } 

build.gradle 文件:

> apply plugin: 'com.android.application' // apply plugin: 'android'
> 
> android {
> 
>     signingConfigs {
>         config {
>             keyAlias 'xxx'
>             keyPassword 'xxx'
>             storeFile file('/home/intel/Downloads/xxx.jks')
>             storePassword 'xxx'
>         }
>     }
>     compileSdkVersion 21
>     buildToolsVersion '21.1.2'
>     defaultConfig {
>         applicationId 'com.xxxx.xxx.xxx'
>         minSdkVersion 14
>         targetSdkVersion 14
>         versionCode 3
>         versionName "1.2"
>         signingConfig signingConfigs.config
>         multiDexEnabled true
>     }
>     buildTypes {
>         release {
>             minifyEnabled false
>             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
>             signingConfig signingConfigs.config
>         }
>         debug {
>             signingConfig signingConfigs.config
>         }
>     }
>     productFlavors {
>     }
>     sourceSets {
>         main {
>             jni.srcDirs = []
>             assets.srcDirs = ['src/main/assets', 'src/main/assets/']
>         }
>     }
> 
> }
> 
> dependencies {
>     compile 'com.android.support:appcompat-v7:21.0.3'
>     compile 'com.google.android.gms:play-services:+'
>     compile project(':pulltorefresh')
>     compile 'com.google.code.gson:gson:2.3.1'
>     compile files('libs/ksoap2-android-assembly-3.4.0-jar-with-dependencies.jar')
>     compile files('libs/possdk.jar')
>     compile project(':ftrScanApiAndroidHelperUsbHost')
>     compile project(':ftrWsqAndroidHelper') }

local.properties 如下:

sdk.dir=/home/intel/Takencode/Android/Sdk

ndk.dir=/home/intel/Takencode/Android/Ndk

对于上述错误,还有其他解决方案吗?任何建议

【问题讨论】:

  • 你在安卓棒棒糖中试过了吗?
  • 你的意思是编译sdk版本...棒棒​​糖? @FabinPaul
  • 您是否在棒棒糖设备/模拟器上运行了该应用程序?
  • 如何在不编译的情况下运行应用程序...我在编译时收到此错误..顺便说一句我正在使用 Lollipop OS 设备
  • 你编译了 com.android.support:multidex:1.0.1 吗?

标签: android android-multidex


【解决方案1】:

您必须在 gradle 中添加支持库的依赖项

compile 'com.android.support:multidex:1.0.1'

如果您已经有一个自定义应用程序,则必须更改它而不是扩展 Application,而必须像这样使用 MultiDexApplication 扩展该类

MyApplication extends MultiDexApplication {

}

如果您没有任何自定义应用程序类,只需在 应用程序标记

内的清单中添加它
<application
   android:name="android.support.multidex.MultiDexApplication">   
</application>

如果您不需要整个 play service,您可以删除依赖项并像这样只添加您需要的那些依赖项

compile 'com.google.android.gms:play-services-gcm:8.1.0'
compile 'com.google.android.gms:play-services-maps:8.1.0'
compile 'com.google.android.gms:play-services-location:8.1.0'

那么你就不用申请MultiDex

对于 ndk,你可以看到这个SO Thread

【讨论】:

    【解决方案2】:

    你可以试一试!

    sourceSets {
        main {
            jni.srcDirs = []
            assets.srcDirs = [] //disable automatic ndk-build call
        }
    }
    

    【讨论】:

      【解决方案3】:

      最后在谷歌上搜索了很多之后,我纠正了这些问题。上述问题出了问题。

      Case 1:在模块中我有 jni 和 jnilibs 几个通用文件(.so 文件)...所以我删除了 jni 文件夹,因为它包含相同的 .so 文件...从项目。

      Case 2:可能存在模块(库)和主项目的主题、图标不同的情况(在AndroidManifest.xml文件中定义)。为了更正清单文件的查找...使模块和主项目主题相同..

      在我的情况下,模块具有以下主题

      android:theme="@style/AppTheme" 
      

      主要项目有

       android:theme="@android:style/Theme.Holo.Light.NoActionBar"
      

      所以我将模块主题更改为与项目主题相同。

      还将下面的行添加到清单标签

      xmlns:tools="http://schemas.android.com/tools"  
      

      一旦添加到上面的行添加下面的行到应用程序标签

      tools:replace="android:icon,android:theme"
      

      现在它完美无缺。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-14
        • 2015-01-13
        • 2015-05-21
        • 1970-01-01
        • 2013-05-16
        相关资源
        最近更新 更多