2015-08-23 5 views
2

В настоящее время я работаю над проектом по разработке приложения для Android с использованием Ionic/Cordova. В этом приложении нам необходимо автоматически подключиться к сети Wi-Fi, используя EAP TTLS, и для этого мы разрабатываем плагин cordova.Разработка плагина Ionic/Cordova - плагин не будет строить

Как мы можем посоветовать, мы начали разработку, создав приложение для Android, которое выполняло именно то, что мы хотели. Затем мы превратили его в плагин. До этого момента все было замечательно, мы достигли желаемой функциональности и добавили плагин в проект Ionic без ошибок.

Теперь, когда мы выполняем команду ionic build мы получаем много ошибок, связанных с импортом, используемым в плагине, например:

import android.net.wifi.WifiConfiguration; 
import android.net.wifi.WifiManager; 
import android.net.wifi.WifiConfiguration; 
import android.net.wifi.WifiEnterpriseConfig; 
import android.net.wifi.WifiManager; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 

Из всех исследований, проведенных до развития, мы поняли, что любое приложение, которое вы может развиваться напрямую для Android, может превратиться в плагин. Поэтому я считаю, что нам не хватает важного шага в этом процессе или неправильного подхода к разработке.

Может кто-нибудь помочь мне решить эту проблему или дать мне указатели на правильный способ создания плагина Ionic/Cordova?

Вот копия журнала ошибок:

ConnectivityChangeReceiver.java:19: error: cannot find symbol 
import com.wbinnova.adsfinetworkplugin.R; 
            ^
    symbol: class R 
    location: package com.wbinnova.adsfinetworkplugin 
    ConnectionActivity.java:9: error: package android.support.v7.app does not exist 
import android.support.v7.app.ActionBarActivity; 
          ^
    ConnectionActivity.java:17: error: cannot find symbol 
public class ConnectionActivity extends ActionBarActivity { 
             ^
    symbol: class ActionBarActivity 
    ScanActivity.java:13: error: package android.support.v7.app does not exist 
import android.support.v7.app.ActionBarActivity; 
          ^
    ScanActivity.java:21: error: cannot find symbol 
public class ScanActivity extends ActionBarActivity { 
           ^
    symbol: class ActionBarActivity 
    ConnectivityChangeReceiver.java:93: error: package R does not exist 
       Notification notification = new Notification(R.mipmap.ic_launcher, "Red Ads-Fi disponible", System.currentTimeMillis()); 
                  ^
    ConnectionActivity.java:24: error: cannot find symbol 
     super.onCreate(savedInstanceState); 
     ^
    symbol: variable super 
    location: class ConnectionActivity 
    ConnectionActivity.java:27: error: cannot find symbol 
     wifiManag = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
           ^
    symbol: method getSystemService(String) 
    location: class ConnectionActivity 
    ConnectionActivity.java:53: error: no suitable constructor found for Builder(ConnectionActivity) 
     AlertDialog.Builder builder = new AlertDialog.Builder(ConnectionActivity.this); 
            ^
    constructor Builder.Builder(Context,int) is not applicable 
     (actual and formal argument lists differ in length) 
    constructor Builder.Builder(Context) is not applicable 
     (actual argument ConnectionActivity cannot be converted to Context by method invocation conversion) 
    ConnectionActivity.java:22: error: method does not override or implement a method from a supertype 
    @Override 
    ^
    ConnectionActivity.java:62: error: package R does not exist 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
           ^
    ConnectionActivity.java:62: error: cannot find symbol 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     ^
    symbol: method getMenuInflater() 
    location: class ConnectionActivity 
    ConnectionActivity.java:59: error: method does not override or implement a method from a supertype 
    @Override 
    ^
    ConnectionActivity.java:71: error: package R does not exist 
     if (id == R.id.action_settings) { 
       ^
    ConnectionActivity.java:75: error: cannot find symbol 
     return super.onOptionsItemSelected(item); 
      ^
    symbol: variable super 
    location: class ConnectionActivity 
    ConnectionActivity.java:66: error: method does not override or implement a method from a supertype 
    @Override 
    ^
    ScanActivity.java:35: error: cannot find symbol 
     super.onCreate(savedInstanceState); 
     ^
    symbol: variable super 
    location: class ScanActivity 
    ScanActivity.java:36: error: package R does not exist 
     setContentView(R.layout.activity_main); 
         ^
    ScanActivity.java:39: error: cannot find symbol 
     mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
           ^
    symbol: method getSystemService(String) 
    location: class ScanActivity 
    ScanActivity.java:33: error: method does not override or implement a method from a supertype 
    @Override 
    ^
    ScanActivity.java:54: error: package R does not exist 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
           ^
    ScanActivity.java:54: error: cannot find symbol 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     ^
    symbol: method getMenuInflater() 
    location: class ScanActivity 
    ScanActivity.java:51: error: method does not override or implement a method from a supertype 
    @Override 
    ^
    ScanActivity.java:63: error: package R does not exist 
     if (id == R.id.action_settings) { 
       ^
    ScanActivity.java:67: error: cannot find symbol 
     return super.onOptionsItemSelected(item); 
      ^
    symbol: variable super 
    location: class ScanActivity 
    ScanActivity.java:58: error: method does not override or implement a method from a supertype 
    @Override 
    ^
    ScanActivity.java:74: error: cannot find symbol 
     mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
           ^
    symbol: method getSystemService(String) 
    location: class ScanActivity 
    ScanActivity.java:99: error: cannot find symbol 
     WifiManager wifiManag = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
              ^
    symbol: method getSystemService(String) 
    location: class ScanActivity 
    ScanActivity.java:153: error: cannot find symbol 
      Intent intent2 = new Intent(ScanActivity.this, ConectionActivity.class); 
                 ^
    symbol: class ConectionActivity 
    location: class ScanActivity 
    ScanActivity.java:154: error: cannot find symbol 
      startActivity(intent2); 
      ^
    symbol: method startActivity(Intent) 
    location: class ScanActivity 
+0

Даже я столкнулся с той же проблемой. В документации о добавлении зависимостей ничего не упоминалось. – ChandrasekarG

ответ

1

Кажется, вы создаете действие Java, вам нужно создать простой класс Java с некоторыми функциями, которые позволят вам превратить этот класс Java в плагин для Кордовы

Здесь вы можете найти, как создать простое эхо плагин:

https://cordova.apache.org/docs/en/2.5.0/guide/plugin-development/android/

Обратите внимание на то, расширяет CordovaPlugIn и главная функция execute с 3 аргументы

  • Имя действия, которое будет выполнено. Параметр строки
  • Аргументы. JSONArray параметр
  • Обратный вызов. Это будет вызываться, когда функция заканчивается, и если вы хотите вернуть значение, передайте ее как аргумент успешности или ошибки функции.
Смежные вопросы