小编Kyl*_*leM的帖子

如何在Android Sudio中使用我自己的Android.mk文件

我在Android.mk文件中定义了一些变量(我正在为编译器传递一些标志),但每次构建我的项目时,都会Android.mk被覆盖.我假设这Gradle是负责任的,我应该在那里看?我如何使用自己的Android.mk文件?

背景资料:

Ubuntu64位,Android Studio1.0.1,JDK7.我NDKO-LLVM NDK封装了我的版本,因此正在编辑Android.mk位于app/build/intermediates/ndk/debug(它是Android.mk我项目目录中唯一的文件)的文件,与doc O-LLVM提供示例的位置不同.

此外,没有Application.mk文件,所以我再次假设Gradle负责调用编译器?

任何帮助将不胜感激.

凯尔


更新的信息

build.gradle - (app)

//The following code until the "----" line is the new build.gradle config file
// that disables automatic Android.mk file generation

import org.apache.tools.ant.taskdefs.condition.Os
apply plugin: 'com.android.application'

android {

    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.md.helloworld"
        minSdkVersion 15
        targetSdkVersion 21
        versionCode 1
        versionName …
Run Code Online (Sandbox Code Playgroud)

java-native-interface llvm gradle android-ndk android-studio

19
推荐指数
1
解决办法
3万
查看次数

使用NDK在Android Studio 1.0.2中生成.so文件

我一直在努力获得一个非常简单的NDKSample应用程序,这个应用程序按照此处的步骤进行构建.我的问题是,我无法让Android Studio生成.so文件,因此我没有库.

我知道NDK支持现在已被弃用,并且今年早些时候会提供替代方案,但是目前似乎没有任何东西阻止我使用此功能.当我构建我的项目时,我收到以下警告(不是错误):

警告[Project :: app]不推荐使用当前的NDK支持.将来会提供替代方案.

我的项目构建,但是当我运行.apk它崩溃(如预期),因为它无法找到库/ .so文件.我们希望在构建项目时生成这些,根据示例,这是正确的吗?这是错误:

java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader [DexPathList [[zip file"/data/app/com.example.ndksample-1/base.apk"],nativeLibraryDirectories=[/vendor/lib,/ system/lib] ]]找不到"libMyLib.so"

关于我的环境

Windows 7,Android Studio 1.0.2,ADB正在运行Nexus 5(模拟器-5554)

我的代码

根据例子:

主Activity.java

package com.example.ndksample;

//import android.support.v7.app.ActionBarActivity;
// This line is not needed as we are not targetting older devices
import android.app.Activity; //Import this app package to use onCreate etc.
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;


public class MainActivity extends Activity {

    static{
        System.loadLibrary("MyLib");
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView tv …
Run Code Online (Sandbox Code Playgroud)

java-native-interface android android-ndk android-studio android-gradle-plugin

8
推荐指数
1
解决办法
2万
查看次数