2014-10-09 4 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); 


} 

스크린 샷 : 당신이 jfuzzylite.jar 파일을 가져온

The imported libraries do not seem to have a problem.

The classes cannot be resolved to a type

+0

패키지 대신 단일 클래스를 가져 오면 어떤 변화가 있습니까? 즉. com.fuzzylite 대신 com.fuzzylite.Engine을 가져 오십시오. * – Giovanni

+0

저장하고 자동 빌드 했나요? .... sry – user2504380

+0

@ user2504380 - 예, 저장 및 자동 빌드를 시도했지만 결과가 없습니다. –

답변

0

? 나는 당신이 참조 된 라이브러리 내에서 jfuzzylite.jar 파일을보아야한다고 생각한다.

jfuzzylite와 함께 제공되는 build.xml 파일에 ant을 사용하여 jfuzzylite.jar을 빌드 해 보았습니까?