我最近尝试在最近出现的Android Studio 2.3.1中编辑我4岁的Android应用程序。 导入代码后,我可以在手机上启动它。但是动作栏似乎已经消失了。出了什么问题? 如何告诉android显示操作栏? 我已经实现了这样的操作栏活动:
public class MainActivity extends ActionBarActivity
我的build.gradle看起来像这样:
apply plugin: 'com.android.application'
android {
compileSdkVersion 17
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "de.my.app"
minSdkVersion 8
targetSdkVersion 17
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:18.0.0'
}
我还尝试用更新的命令替换compile
命令:
compile 'com.android.support:appcompat-v7:25.3.1'
但是android studio中的同步已经失败了,抛出以下错误:
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 8 cannot be smaller than version 9 declared in library [com.android.support:appcompat-v7:25.3.1] /home/user/.android/build-cache/815cafa5312f1d889eb1134b2184a62b3f88d8a3/output/AndroidManifest.xml
Suggestion: use tools:overrideLibrary="android.support.v7.appcompat" to force usage
我在过去的4年里没有做过很多Android编码,所以我认为ActionBar的内容发生了深刻的变化,但是不应该有一种编译旧代码的方法,因为它使用的是android studio吗? / p>
编辑:
这是manifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.myApp.myAppDemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/icon_app"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="de.myApp.myAppDemo.Splash"
android:label="@string/app_name"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="de.myApp.myAppDemo.MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@style/Theme.AppCompat.Light">
<intent-filter>
<action android:name="de.myApp.myAppDemo.MAINACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="de.myApp.myAppDemo.PropertiesAssign"
android:label="@string/app_name"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="de.myApp.myAppDemo.PROPERTIESASSIGN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="de.myApp.myAppDemo.PropertiesView"
android:label="@string/app_name"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="de.myApp.myAppDemo.PROPERTIESVIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
答案 0 :(得分:0)
同时我至少得到了要显示的ActionBar。但是我不得不大幅增加MinSDK和targetSdkVersion / compileSdkVersion:从8,17到15,23。此外,我必须查看SDK-Manager以查看我的系统(23.2.0)上安装了Android Support Library
的确切版本,并调整build.gradle
中的相应行。
apply plugin: 'com.android.application'
android {
compileSdkVersion 23 //->modified
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "de.Geo.geodraw"
minSdkVersion 15 //->modified
targetSdkVersion 23 //->modified
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile "com.android.support:appcompat-v7:23.2.0" //->modified
}
不确定它是否相关或必要但是this page我还添加了
allprojects {
repositories {
jcenter()
maven { //->modified
url "https://maven.google.com" //->modified
} //->modified
}
}
在另一个build.gradle
文件中。
如果有其他解决方案没有彻底改变minSdk
和targetSdk
,我会接受这个答案。