从 Eclipse 迁移到 Android Studio 后不再显示 ActionBar
ActionBar is not being displayed anymore after migration from Eclipse to Android Studio
我最近尝试在最近出现的 Android Studio 2.3.1 中编辑我 4 年前的 android 应用程序。
导入代码后,我可以在我的手机上启动它 phone。但是操作栏似乎已经消失了。出了什么问题?
如何让 android 显示操作栏?
我已经像这样实现了操作栏 activity:
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 工作室?
编辑:
这是 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>
与此同时,我至少获得了要显示的 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
我会接受这个答案。
我最近尝试在最近出现的 Android Studio 2.3.1 中编辑我 4 年前的 android 应用程序。 导入代码后,我可以在我的手机上启动它 phone。但是操作栏似乎已经消失了。出了什么问题? 如何让 android 显示操作栏? 我已经像这样实现了操作栏 activity:
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 工作室?
编辑:
这是 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>
与此同时,我至少获得了要显示的 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
我会接受这个答案。