2015-12-15 36 views
5

Próbuję wprowadzić hello-jni sample do mojego projektu. Mam Gradle 2.8 i 'com.android.tools.build:gradle-experimental:0.4.0' i używając Android Studio 2.0 Preview 3b.Próbka Hello-jni nie działa w Android Studio 2.0 Preview

To jest mój build.gradle:

apply plugin: 'com.android.model.application' 
model { 
    android { 
     compileSdkVersion = 23 
     buildToolsVersion = "23.0.2" 
     defaultConfig.with { 
      applicationId = "lala.lala" 
      minSdkVersion.apiLevel = 16 
      targetSdkVersion.apiLevel = 23 
      versionCode = 1 
      versionName = "1.0" 
     } 
    } 
    /* 
    * native build settings 
    */ 
    android.ndk { 
     moduleName = "hello-jni" 


     // cppFlags.add("-fno-rtti") 
    // cppFlags.add("-fno-exceptions") 
    // ldLibs.addAll(["android", "log"]) 
     // stl  = "system" 

    } 

    android.productFlavors { 
     // for detailed abiFilter descriptions, refer to "Supported ABIs" @ 
     // https://developer.android.com/ndk/guides/abis.html#sa 
     create("arm") { 
      ndk.abiFilters.add("armeabi") 
     } 
     create("arm7") { 
      ndk.abiFilters.add("armeabi-v7a") 
     } 
     create("arm8") { 
      ndk.abiFilters.add("arm64-v8a") 
     } 
     create("x86") { 
      ndk.abiFilters.add("x86") 
     } 
     create("x86-64") { 
      ndk.abiFilters.add("x86_64") 
     } 
     create("mips") { 
      ndk.abiFilters.add("mips") 
     } 
     create("mips-64") { 
      ndk.abiFilters.add("mips64") 
     } 
     // To include all cpu architectures, leaves abiFilters empty 
     create("all") 
    } 
    android.buildTypes { 
     release { 
      minifyEnabled = false 
      //proguardFiles.add(file('proguard-rules.txt')) 
     } 
    } 

} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:design:23.1.1' 
    compile 'com.android.support:cardview-v7:23.1.1' 
    compile 'com.android.support:recyclerview-v7:23.1.1' 
    compile 'com.google.android.gms:play-services-ads:8.3.0' 
    compile 'com.google.android.gms:play-services-analytics:8.3.0' 
    compile 'com.google.android.gms:play-services-appindexing:8.3.0' 
} 

Stworzyłem w JNI folderze hello-jni.h:

enter image description here

w jakiejś części mojego kodu importować to:

static { 
    System.loadLibrary("hello-jni"); 
} 
public static native int testMethod(); 

I przez auto com pletion stworzony hello-jni.c:

#include "hello-jni.h" 

JNIEXPORT jintJNICALL 
Java_lala_lala_HomeScreen_testMethod(JNIEnv 
*env, 
jclass type 
) 
{ 
// TODO 
} 

pliku nagłówka hello-jni.h:

// 
// Created by Filip on 15.12.2015.. 
// 

#ifndef PHOTO_HELLO_JNI_H 
#define PHOTO_HELLO_JNI_H 

#endif //PHOTO_HELLO_JNI_H 

Ale to nie działa. Jest pełna czerwono:

enter image description here

Jaki jest problem? Jak to rozwiązać?

Odpowiedz

0

To problem w Android studiu, ale tylko w systemie Windows: Issue 195483
można obniżyć do Android 1.5.1 studio , gradle 2.8, experimental wrapper 0.4.0.
Próbowałem Androida Studio 2.0 beta 6, z opakowaniem 0.6.0-beta5 i 0.6.0-beta6, ale nadal nie działa.

1

Aby praca próbka może spróbować wykonać następujące czynności:

  1. Podpis metody jniJava_filsoft_photo_HomeScreen_testMethod(...) nie pasuje do nazwy pakietu, który jest lala.lala. Aby wywołać metodę, należy podpisać ją zgodnie z nazwą pakietu.
  2. edycji Spróbuj hello-jni.c następująco:

    #include <jni.h> 
    #include "hello-jni.h" 
    
    jint Java_lala_lala_HomeScreen_testMethod(JNIEnv* env, jclass type) 
    { 
    } 
    
  3. Odnośnie czerwonych highlightings, od Android Studio 2.0 Preview 3b funkcja NDK jeszcze nie jest oficjalnie wspierany i, moim najlepszym przypuszczeniem, to jest powód, dla niego. Wyłącz Android NDK support wtyczki (jeśli jest zainstalowany)

    Settings>Plugins> odznacz Android NDK support> restart Android Studio

+0

Och, to nie jest problem, jestem umieszczony w jednym miejscu i zapomnij umieścić go na innym. Jest spójny, mam problem z '#include ' –

+0

Nie można znaleźć tej biblioteki –

+0

ndk.dir = C \: \\ Użytkownicy \\ Filip \\ AppData \\ Lokalny \\ Android \\ sdk \\ ndk-bundle Tak –

Powiązane problemy