我在Android.mk文件中定义了一些变量(我正在为编译器传递一些标志),但每次构建我的项目时,都会Android.mk被覆盖.我假设这Gradle是负责任的,我应该在那里看?我如何使用自己的Android.mk文件?
背景资料:
Ubuntu64位,Android Studio1.0.1,JDK7.我NDK用O-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
我一直在努力获得一个非常简单的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