使用“R”设置布局,图像等时遇到问题。以下是给出此错误的代码。
但是如果我选择“compile with:”作为“API 19”,那么相同的代码工作正常。我希望我的代码能够在我的手机上运行,即2.3.3。
我在google上搜索过我发现很多人都有这个问题。但没有解决方案适合我
package com.example.testfor23;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
}
}
以下是清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.testfor231"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name="com.example.testfor231.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
如果我选择“compileSdkVersion 19”,那么它的效果非常好。
android {
compileSdkVersion 10
buildToolsVersion "19.0.1"
defaultConfig {
minSdkVersion 9
targetSdkVersion 9
}
答案 0 :(得分:0)
您的项目中有一些资源与2.3.3不兼容。修复它们就可以了。
答案 1 :(得分:0)
您需要添加
import com.example.testfor23.R;
为了修复Java文件中的R错误。如果仍然收到错误,那么您的一个XML文件包含错误,您将不得不找出错误。清理项目也许有帮助。另请注意,您需要在project.properties
中正确设置目标。在你的情况下,它应该是:
target=android-19
通常,支持旧版Android会出现问题,因为它们不包含新版本的许多方法,类和功能。对于低于API 10的版本,这尤其明显。
如果您绝对必须支持这些旧版本,则可以使用Support Libraries。
正如您所看到的here,目前只有1.3%的设备运行的版本早于API10(Gingerbread 2.3.3)。因此,我强烈建议你设置:
android:minSdkVersion="10"
因为支持这些设备的额外好处远大于它造成的问题。
答案 2 :(得分:0)
有时会发生这种情况,因为您的xml可能有错误,并且可能是sintax错误,不兼容的资源尝试在res目录中没有重复项。同时从项目中导入R,有时会因为你没有导入(在这种情况下)
而发生错误import com.example.testfor23.R;
因为如果你不导入它,你就是从平台引用资源。