2014-10-09 10 views
0

Я создаю приложение для Android с использованием нечеткой логики. Я импортировал библиотеку jar, добавив ее в папку lib.ошибка неразрешенного типа из классов, импортированных из внешнего файла jar

Однако классы, относящиеся к этим библиотекам, отображают ошибку «не могут быть разрешены к типу».

Я пробовал решение, classes from android project library not resolved in android project. Но это не сработало для меня, и метод clean-refresh-build тоже не был полезен.

Код:

import java.sql.Savepoint; 

import com.fuzzylite.*; 
import com.fuzzylite.defuzzifier.*; 
import com.fuzzylite.factory.*; 
import com.fuzzylite.hedge.*; 
import com.fuzzylite.imex.*; 
import com.fuzzylite.norm.*; 
import com.fuzzylite.norm.s.*; 
import com.fuzzylite.norm.t.*; 
import com.fuzzylite.rule.*; 
import com.fuzzylite.term.*; 
import com.fuzzylite.variable.*; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.EditText; 
import android.widget.RatingBar; 
import android.widget.SeekBar; 
import android.widget.TextView; 

private void fuzzy(){ 
    Engine engine = new Engine(); 
    engine.setName("Mamdani-Tip-Calculator"); 

    InputVariable inputVariable1 = new InputVariable(); 
    inputVariable1.setEnabled(true); 
    inputVariable1.setName("FoodQuality"); 
    inputVariable1.setRange(1.000, 10.000); 
    inputVariable1.addTerm(new Trapezoid("Bad", 0.000, 1.000, 3.000, 7.000)); 
    inputVariable1.addTerm(new Trapezoid("Good", 3.000, 7.000, 10.000, 11.000)); 
    engine.addInputVariable(inputVariable1); 

    InputVariable inputVariable2 = new InputVariable(); 
    inputVariable2.setEnabled(true); 
    inputVariable2.setName("Service"); 
    inputVariable2.setRange(1.000, 10.000); 
    inputVariable2.addTerm(new Trapezoid("Bad", 0.000, 1.000, 3.000, 7.000)); 
    inputVariable2.addTerm(new Trapezoid("Good", 3.000, 7.000, 10.000, 11.000)); 
    engine.addInputVariable(inputVariable2); 

    OutputVariable outputVariable = new OutputVariable(); 
    outputVariable.setEnabled(true); 
    outputVariable.setName("Tip"); 
    outputVariable.setRange(0.000, 30.000); 
    outputVariable.fuzzyOutput().setAccumulation(new AlgebraicSum()); 
    outputVariable.setDefuzzifier(new Centroid(200)); 
    outputVariable.setDefaultValue(Double.NaN); 
    outputVariable.setLockValidOutput(false); 
    outputVariable.setLockOutputRange(false); 
    outputVariable.addTerm(new Gaussian("AboutTenPercent", 10.000, 2.000)); 
    outputVariable.addTerm(new Gaussian("AboutFifteenPercent", 15.000, 2.000)); 
    outputVariable.addTerm(new Gaussian("AboutTwentyPercent", 20.000, 2.000)); 
    engine.addOutputVariable(outputVariable); 

    RuleBlock ruleBlock = new RuleBlock(); 
    ruleBlock.setEnabled(true); 
    ruleBlock.setName(""); 
    ruleBlock.setConjunction(new AlgebraicProduct()); 
    ruleBlock.setDisjunction(new Maximum()); 
    ruleBlock.setActivation(new Minimum()); 
    ruleBlock.addRule(Rule.parse("if FoodQuality is Bad and Service is Bad then Tip is AboutTenPercent", engine)); 
    ruleBlock.addRule(Rule.parse("if FoodQuality is Bad and Service is Good then Tip is AboutFifteenPercent", engine)); 
    ruleBlock.addRule(Rule.parse("if FoodQuality is Good and Service is Bad then Tip is AboutFifteenPercent", engine)); 
    ruleBlock.addRule(Rule.parse("if FoodQuality is Good and Service is Good then Tip is AboutTwentyPercent", engine)); 
    engine.addRuleBlock(ruleBlock); 


} 

ScreenShots:

The imported libraries do not seem to have a problem.

The classes cannot be resolved to a type

+0

Что-нибудь изменится, если вы импортируете отдельные классы вместо пакетов? то есть. import com.fuzzylite.Engine вместо com.fuzzylite. * – Giovanni

+0

Вы сохранили и выполнили автообновление? .... sry – user2504380

+0

@ user2504380 - Да, я попробовал сохранить и автообыскать, но никакого результата. –

ответ

0

Где вы импортировали jfuzzylite.jar файл? Я думаю, вы должны увидеть файл jfuzzylite.jar в ссылочных библиотеках.

Вы пытались построить jfuzzylite.jar, используя ant в файле build.xml с jfuzzylite?