2015-08-24 1 views
0

Я новичок в NDK. Я проработал почти неделю, пытаясь понять, как он работает. Я видел много обучающих онлайн, но безрезультатно. Я всегда зацикливаюсь на этом одном шаге и не могу продвигаться дальше. Часть, в которой используется утилита javah. Первая часть кодирования - это содержимое MainActivity. Часть, которая следует за ней, - это то, что я делаю в терминале после создания моего проекта один раз. Сообщение об ошибке, которое я получаю, также показано здесь. Пожалуйста, скажите мне, что я могу сделать, чтобы исправить это. Я нахожусь на своем пути!Терминал в Android Studio показывает ошибку - Исключение в потоке «main» java.lang.IllegalArgumentException: Недействительное имя класса:

Android Студия версия - 1.3.1

package com.example.asish.ndk1; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends Activity { 

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

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
    public native String callNative(); 
} 

Microsoft Windows [Version 6.1.7601] Copyright (с) 2009 Microsoft Corporation. Все права защищены.

C: \ Users \ Asish \ AndroidStudioProjects \ NDK1> CD приложение

C: \ Users \ Asish \ AndroidStudioProjects \ NDK1 \ приложение> CD ЦСИ

C: \ Users \ Asish \ AndroidStudioProjects \ NDK1 \ app \ src> cd main

C: \ Users \ Asish \ AndroidStudioProjects \ NDK1 \ app \ src \ main> javah -d jni -classpath C: \ Program Files \ Android \ android-sdk1 \ platform \ android- 23 \ android.jar; C: \ Program Files \ Android \ android -sdk1 \ extras \ android \ support \ v7 \ appcompat \ libs \ android-support-v4.jar; C: \ Program Files \ Android \ android-sdk1 \ Extras \ Android \ поддержка \ v7 \ приложение Compat \ ЛИЭС \ Android-поддержка-v7-appcompat.jar; .... \ сборка \ промежуточные \ Classes \ Debug \ COM \ MyTest пакет com.example.asish.ndk1.MainActivity

Исключение в потоке "основной" java.lang.IllegalArgumentException: Недопустимое имя класса: файлы \ Android \ android-sdk1 \ platform \ android-23 \ android.jar; C: \ Program на com.sun.tools.javac.api.JavacTool.getTask (JavacTool.java:129) на com.sun.tools .javac.api.JavacTool.getTask (JavacTool.java:107) на com.sun.tools.javac.api.JavacTool.getTask (JavacTool.java:64) на com.sun.tools.javah.JavahTask.run (JavahTask.java:503) at com.sun.tools.javah.JavahTask.run (JavahTask.java:329) at com.sun.tools.javah.Main.main (Main.java:46)

+0

Я где-то читал, что JDK 5 или 6 несовместим с Android SDK. Правда? У меня JDK 8. Это проблема? Должен ли я использовать более раннюю версию? –

ответ

0

Я решил проблему. Я просто понял, что в моем расположении пути sdk было пустое пространство. Я переместил папку SDK в другой каталог, у которого не было пробела в местоположении пути, внесли изменения в команду и это сделало трюк.