2015-09-07 2 views
1

Я делаю свой первый учебник по изучению Android, но придерживался этой ошибки, о которой говорится в названии. Это приложение, которое я пытаюсь сделать Затмение, Java, вот мой код .. (код автоматически генерируется по проекту)R.string.close, закрытие не может быть разрешено или не является полем

package com.HelloWorkLight; 
import android.R; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.content.DialogInterface.OnClickListener; 
import android.os.Bundle; 

import org.apache.cordova.CordovaActivity;`` 

import com.worklight.androidgap.api.WL; 
import com.worklight.androidgap.api.WLInitWebFrameworkResult; 
import com.worklight.androidgap.api.WLInitWebFrameworkListener; 

public class HelloWorkLight extends CordovaActivity implements  WLInitWebFrameworkListener { 

@Override 
public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 

    WL.createInstance(this); 

    WL.getInstance().showSplashScreen(this); 

    WL.getInstance().initializeWebFramework(getApplicationContext(), this); 

} 

/** 
* The IBM MobileFirst Platform calls this method after its initialization is complete and web resources are ready to be used. 
*/ 
public void onInitWebFrameworkComplete(WLInitWebFrameworkResult result){ 
    if (result.getStatusCode() == WLInitWebFrameworkResult.SUCCESS) { 
     super.loadUrl(WL.getInstance().getMainHtmlFilePath()); 
    } else { 
     handleWebFrameworkInitFailure(result); 
    } 
} 

private void handleWebFrameworkInitFailure(WLInitWebFrameworkResult result){ 
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); 
    alertDialogBuilder.setNegativeButton(R.string.close, new OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which){ 
      finish(); 
     } 
    }); 

    alertDialogBuilder.setTitle(R.string.error); 
    alertDialogBuilder.setMessage(result.getMessage()); 
    alertDialogBuilder.setCancelable(false).create().show(); 
} 
} 

спасибо заранее :)

+0

Я думаю, что вы импортировали неправильный класс 'r'. 'import android.R;' – theapache64

+0

У меня это как R.java >> тогда класс R там, в папке/gen – CriminalDuck

+0

Попробуйте заменить 'import android.R;' с 'import your.application.package.R'. где 'your.application.package' - имя вашего прикладного пакета. – theapache64

ответ

0

Проверьте файл values/strings.xml, чтобы увидеть, если есть строка с таким именем , В противном случае, вы можете добавить его:

<string name="close">Close</string>

Вы также можете попробовать Cancel вместо Close, так как это общая практика.

Если это не ваша проблема, обычно проблема в этих случаях - import android.R. Попробуйте удалить его и выполнить чистую сборку вашего проекта.

Примечание: если вы используете штоковые строки, убедитесь, что используете их полностью квалифицированное имя, чтобы избежать потенциальных проблем: например, android.R.string.no.

Если файлы класс не в корневом пакете, импортировать R как это: my.packagename.R

+0

Да, у меня есть строки, называемые close и cancel in {values ​​/ strings.xml} – CriminalDuck

+0

@CriminalDuck См. Мое редактирование – pez

+0

Хорошо, вопрос, у меня есть строки закрытия/отмены в strings.xml, но они не входят в класс R, как Могу ли я включить их, чтобы избежать ошибки? – CriminalDuck