2010-03-20 39 views
15

Vì vậy, tôi đã sao chép điều này ví dụ hướng dẫn ngay từ trang web Android của Google và tôi nhận được một lỗi rằng R.id không thể được giải quyết.R.id không thể được giải quyết

Đây là tập tin Java của tôi

package com.TestApp.HelloWebView; 

import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 

public class HelloWebView extends Activity { 
    WebView mWebView; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     mWebView = (WebView) findViewById(R.id.webview); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.loadUrl("http://www.google.com"); 
    } 

} 

Đây là res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?> 

<WebView android:id="@+id/webview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"/> 

Trả lời

22

Bạn phải nhập loại R của bạn

import com.TestApp.HelloWebView.R; 

Cũng như nhu cầu được đăng, bạn phải sử dụng không gian tên cho bố cục của mình.

?xml version="1.0" encoding="utf-8"?> 
<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/webview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"/> 
+4

Kể từ SDK Android mới, không cần nhập rõ ràng com.TestApp.R. Eclipse tự động giải quyết nó. –

10

Nếu sử dụng Eclipse của tôi, chạy một xây dựng sạch (Project/Clean...); điều này thường có thể xóa các vấn đề với các tài nguyên không được biên dịch chính xác.

2

Bạn đã thử bất kỳ giải pháp nào được liệt kê ở đây chưa? R cannot be resolved - Android error

Ngoài ra, hãy tìm tệp R.java của bạn. Có lỗi nào với nó không?

1

Vào tệp main.xml của bạn, xóa một char và viết lại nó. Điều đó sẽ tạo lại tệp R.

0

nếu bạn đã đăng đầy đủ tệp main.xml của mình, thì không đúng. Bạn phải viết một không gian tên của xml:

xmlns: android = "http://schemas.android.com/apk/res/android"

ví dụ:

<?xml version="1.0" encoding="utf-8"?> 

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/label" 
    android:layout_width="78dip" 
    android:layout_height="65dip" 
    android:paddingTop="4dip" 
    android:textSize="12dip" 
    android:singleLine="true" 
    android:ellipsize="end" 
    android:textColor="@color/bright_text_dark_focused" 
    android:gravity="center_horizontal|center_vertical" /> 
1

đảm bảo bạn không có bất kỳ tệp xml nào có thủ đô trong tên.

Tôi gặp vấn đề tương tự.

tất cả tên tệp trong tệp res (và tất cả các thư mục con của nó bao gồm bố cục) phải chỉ chữ thường. Điều này bao gồm các tệp hình ảnh, tệp xml, v.v. (ngay cả khi chúng không được tham chiếu ở bất kỳ đâu trong dự án.)

12

Tôi đã gặp vấn đề tương tự khi cập nhật SDK Android của mình. Dự án đột nhiên mới không thể tạo tệp R.java.

  • nhập khẩu R.java tôi đã không giúp bởi vì nó đã không được tạo ra
  • làm sạch và xây dựng dự án đã không giúp được gì - thư mục/gen vẫn còn trống.

Tôi thấy rằng sau khi nâng cấp, máy chủ adb không khởi động đúng cách. Vì vậy, hãy bắt đầu theo cách thủ công:

$ cd $ANDROID_SDK/platform-tools 
$ adb start-server 

Sau đó, tôi khởi động lại Eclipse và đã làm sạch/xây dựng dự án đã tạo tệp R.java.

+0

Yup, đã sửa nó cho tôi. –

+0

siêu tốt nhất. –

+0

@pestrella Tôi đã cố gắng keying trong mã trên cmd nhưng nói $ không được công nhận .. Tôi đang làm nó ngay trên cmd? hoặc đây không phải là cho cmd ..? – Raf

0

Có một bản sửa lỗi khác Tôi đã khởi chạy trình mô phỏng. Bằng cách chạy chương trình helloandroid, chương trình đã biên dịch. Và ra khỏi eclispe và trở lại trong không biết cái nào cố định vấn đề ..

Làm sạch dự án vv đã không sửa chữa - tôi có thể có 2 giờ của cuộc sống của tôi trở lại!

1

Khi thử sử dụng tute của người mới bắt đầu Android (http://mobile.tutsplus.com/tutorials/android/android-sdk-development/), lỗi "R.id không thể được giải quyết" đã khiến tôi bối rối. Trong trường hợp của tôi, nó là android: onClick trong /res/layout/main.xml. Có vẻ như onClick không được hỗ trợ ở cấp độ API nền tảng AVD 1.5 3.

Thay đổi AVD mới bằng API nền tảng 1.6, cấp 6 đã xóa lỗi - cũng bắt đầu dự án từ đầu với cài đặt cấp độ và api mới. Đối với những người mới sử dụng Eclipse tuyệt đối (giống như tôi) tạo một AVD mới với:

Cửa sổ -> SDK Android và Trình quản lý AVD -> Mới. Chọn nền tảng, số cấp từ danh sách thả xuống "Mục tiêu".

1

Đồng thời thử xóa ~ .android \ debug.keystore (Đã xảy ra với tôi, nghĩ rằng đó là do vấn đề R.id). Vấn đề thực sự là debug.keystore lớn hơn một năm!

-1

tôi đã cùng một vấn đề nhưng đã cố định

tôi không biết chính xác như thế nào vấn đề này sẽ sửa chữa

Chỉ cần cố gắng, Nó có thể hữu ích

thêm mã này ở phía trên cùng của mã ur

import com.MyFirstApp.activities.R; 

đây com.MyFirstApp.activties là tên thành phần của tôi thay thế bằng tên thành phần

+0

Điều này dường như không thêm bất cứ điều gì vào câu trả lời được chấp nhận. – joran

1

Tôi gặp phải vấn đề này khi tôi cố gắng làm theo hướng dẫn phát triển Android của Lars Vogel ... nó chỉ ra vấn đề của tôi đơn giản là vì tôi không lưu tập tin layout. Khi tôi lưu tệp, nó hoạt động tốt.

+0

Yup, tôi cũng đang ở trong câu lạc bộ dufus. :) –

0

nhập com.TestApp.R; không được chấp nhận khi R bị mất.

Eclipse của tôi giờ đây tự động tạo thư mục "res" mới mỗi khi tôi "làm sạch". Có, tôi có hai thư mục có tên "res" song song trực tiếp trong thư mục dự án của tôi. Ô được tạo tự động trống. Các giá trị chuỗi vẫn được tìm thấy. Không có lỗi nào khác ngoài "R không thể được giải quyết" được Eclipse báo cáo.

2

Tôi cũng gặp sự cố này. Tôi không thể nói một giải pháp nói chung, nhưng bạn có thể tạo một nơi làm việc mới và sao chép mã cứng. Trong tương lai không bao giờ bấm vào sạch hoặc xây dựng, thay vì lưu hoặc bắt đầu nhật thực một lần nữa.

0

Eureka! Tôi đã quản lý để làm cho dự án Android đầu tiên của tôi nhập vào Eclipse!

Trước đó tôi luôn có "Không thể tìm thấy thư viện hệ thống" trong thuộc tính của dự án - Đường dẫn xây dựng Java - tab Thư viện và không thể sửa nó khi nó xảy ra. Hậu quả là không có câu lệnh nhập nào có thể được giải quyết bằng bất cứ thứ gì được nhập khẩu.

Trong trường hợp này, tôi đã thay đổi mức tuân thủ JDK từ 1,6 đến 1,5 TRƯỚC Tôi đã nhập (sau đó quá muộn và không thể sửa đổi). Nó phải được thực hiện từ Window - Preferences - Java - Compiler (trước đây tôi nghĩ rằng tùy chọn này chỉ có sẵn bằng cách kích chuột phải vào dự án đã được import). Sau đó nhấn chuột phải vào từng dự án và thiết lập Properties - Android cho một Target phù hợp (với các lỗi ở trên, eclipse bỏ qua bất kỳ lựa chọn nào ở đây). Sau đó, tôi thậm chí có thể thay đổi trở lại mức tuân thủ JDK 1.6.

Vì vậy, nói chung, việc thay đổi mức tuân thủ JDK trước khi nhập, có thể hữu ích.

Và khi xóa dự án LUÔN hãy chọn hộp kiểm "Xóa nội dung dự án trên đĩa (không thể hoàn tác)" trong hộp thoại "Bạn có chắc chắn" không. Nếu không, bạn không thể nhập lại dự án, nếu bạn đã nhập nó với mức tuân thủ JDK sai lần đầu tiên, không thể sửa lỗi, ngoài việc thử trong không gian làm việc khác.

Đây là những trải nghiệm của một người dùng Eclipse rất thất vọng.

0

Đảm bảo không có lỗi ẩn trong một trong các tệp .xml của bạn.
Đôi khi bạn có thể xóa một câu lệnh trong tệp strings.xml quan trọng.

Ví dụ, trong ví dụ Vogella, tôi đã nhận lỗi:

Lỗi: Không tìm thấy tài nguyên phù hợp với tên cho trước (tại 'tiêu đề' với giá trị '@ chuỗi/menu_settings').

tôi đã xóa dòng:

<string name="menu_settings">Settings</string> 

Đưa trở lại này trong hoặc xóa res/menu/main.xml sẽ giải quyết lỗi.

Các vấn đề liên quan