当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
1 Star 0 Fork 3.7K

Ljian / android-app
关闭

forked from 志威 / android-app
关闭
 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

OSChina Android

本项目为fork开源中国的android版本4.1.7最新开源代码,并使用Android Studio 3.2.1版本,更新gradle配置为当前最新态4.10(在项目下的gradle目录内,wrapper文件夹的gradle-wrapper.properties内配置),编译运行成功。希望有助于大家研究学习。原项目地址http://www.oschina.net/p/oschina-android-app

源码升级配置注意

clone官方的源码之后,发现好多依赖库,以及配置都比较老旧,而且在新版的AndroidStudio上是无法运行。所以尝试解决问题,编译并运行OK,改变点记录如下:

  1. 修改编译版本

    //改为28编译
    ext {
    	compileSdkVersion = 28
    	buildToolsVersion = "28.0.3"
    	applicationId = "net.oschina.app"
    	minSdkVersion = 19
    	targetSdkVersion = 28
    	versionCode = 417
    	versionName = "v4.1.7 (1806190800)"
    	supportVersion = '28.0.0'
    }
  2. 修改gradle以及dexcount版本

    buildscript {
    	repositories {
    		google()
    		jcenter()
    	}
    	dependencies {
    		//更新gradle版本为3.2.1,以及dexcount版本为0.6.2
    		classpath 'com.android.tools.build:gradle:3.2.1'
    		classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.6.2'
    	}
    }
    
    allprojects {
    	repositories {
            //添加阿里云的源,下载快速
    		maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
    		jcenter()
    		mavenCentral()
    		google()
    		maven { url 'https://dl.bintray.com/oschinaapp/maven/' }
    		maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
    		maven { url 'https://jitpack.io' }
    	}
    }
  3. 解决Dimensions错误

    //在app目录下的buidle.gradle文件内,添加如下,在android{}闭包内
    flavorDimensions "versions"
  4. 解决gradle版本升级引起的错误

    //在android{}闭包下,修改生成apk的命名配置
    	// rename the apk with the version name
    	android.applicationVariants.all { variant ->
    		variant.outputs.all {
    			outputFileName = "osc-android-${variant.versionName}-${variant.productFlavors[0].name}.apk".toLowerCase()
    		}
    	}
  5. 解决com.android.tools.r8.utils.AbortException: Error: Static interface methods are only supported starting with Android N

    //android{}闭包内添加
    compileOptions {
    		sourceCompatibility JavaVersion.VERSION_1_8
    		targetCompatibility JavaVersion.VERSION_1_8
    	}
  6. theme.xml错误,引起编译错误

    <!--191行,theme配置错误,少了@符号,这里补上 -->
    <style name="Theme.App.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
            <!-- Support library compatibility -->
            <item name="elevation">0dp</item>
        </style>
  7. AndroidManifest.xml中有一条重复的meta-data百度的数据配置,删除。

  8. 配置BuildConfig应用到的key,在local.properties文件中

    ## 替换为开发者在OSChina上申请的openapi的key
    AES_KEY = 1234567891234567
    AES_IV = 9876543217894561
    VIOLET_PASSCODE = 123
  9. 更新dependencies,使用androidx支持库

    //更新support库为androidx,更新butterknife为9.0版本
    dependencies {
    	implementation fileTree(include: ['*.jar'], dir: 'libs')
    	//noinspection GradleCompatible,GradleDependency
    	implementation 'androidx.legacy:legacy-support-v4:1.0.0-alpha1'
    	implementation 'androidx.appcompat:appcompat:1.0.0'
    	implementation 'com.google.android.material:material:1.0.0-rc01'
    	implementation 'androidx.recyclerview:recyclerview:1.0.0'
    	implementation 'androidx.cardview:cardview:1.0.0-rc01'
    	implementation project(':open')
    
    	if (propertyHaveDebugCompile) {
    		implementation propertyDebugCompile
    	}
    	androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0-alpha3', {
    		exclude group: 'com.android.support', module: 'support-annotations'
    	})
    	implementation 'com.github.chrisbanes.photoview:library:1.2.4'
    	implementation 'com.loopj.android:android-async-http:1.4.9'
    	//noinspection GradleDependency
    	implementation 'com.jakewharton:butterknife:9.0.0-rc2'
    	annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc2'
    
    	implementation 'com.google.zxing:core:3.3.0'
    	implementation 'com.joanzapata.android:android-iconify:1.0.9'
    	implementation 'com.makeramen:roundedimageview:2.1.1'
    	implementation 'pub.devrel:easypermissions:0.3.0'
    	implementation 'com.github.bumptech.glide:glide:3.7.0'
    	//noinspection GradleDependency
    	implementation 'de.hdodenhof:circleimageview:2.0.0'
    	implementation 'com.google.code.gson:gson:2.8.2'
    	implementation 'com.upyun:upyun-android-sdk:2.0.5'
    	//noinspection GradleDependency
    	//    implementation 'com.umeng.analytics:analytics:latest.integration'
    	//noinspection GradleDependency
    	implementation 'com.baidu.mobstat:mtj-sdk:latest.integration'
    	//noinspection GradleDependency
    	implementation 'androidx.multidex:multidex:2.0.0'
    	implementation 'net.oschina.common:common:0.2.1'
    	implementation 'com.belerweb:pinyin4j:2.5.1'
    	implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.6.0'
    	implementation 'com.hyman:flowlayout-lib:1.1.2'
    	implementation('com.github.mcxtzhang:SwipeDelMenuLayout:V1.2.5') {
    		exclude group: 'com.android.support:appcompat-v7', module: 'support-v4'
    	}
    	testImplementation 'junit:junit:4.12'
    }
  10. 更新butterknife并修改代码中的@Bind@BindView,其中有一个使用了@BindViews以及低版本有个ButterKnife.unbind(this);这个函数,可以去掉。

修改之后,基本便可以正常运行,如果不配置开发者申请的key,则会拉取不到内容信息。在此,感谢开源中国,给大家一个学习交流的平台!

空文件

简介

OSChina Android 客户端源码 AndroidStudio3.2.1版本构建,gradle及依赖库更新为当前最新(2018/11/22) 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Android
1
https://gitee.com/blueSword0009/android-app.git
git@gitee.com:blueSword0009/android-app.git
blueSword0009
android-app
android-app
master

搜索帮助